2013-08-16 29 views
0

嗨,大家好有存儲過程(MYPROC)選擇這樣的:如何添加到存儲過程調用選擇vallue

SELECT @body = 'User: ' + @admin_username + ' set Admin role TO: ' + [username] 
FROM [dbo].[users] 
WHERE [id] = @user_id; 

,並希望在另一個存儲過程調用,它是在當前的過程中添加@body

exec sendMail '','',@body 

這是怎麼回事? @body類型是nvarchar(max)我認爲我有錯的選擇,因爲當我exec的我的程序有一個錯誤:不能插入空值

+0

我強烈建議按名稱傳遞參數,如'exec sendMail @body = @ body' –

回答

1

確保您@Admin_Username和[用戶名]不返回null,否則你整個@body變量將以NULL結束。

嘗試這樣:

SELECT @body = 'User: ' + ISNULL(@admin_username, '') + ' set Admin role TO: ' + ISNULL([username], '') 
FROM [dbo].[users] 
WHERE [id] = @user_id; 


exec sendMail '','',@body