大家好,我们选择存储过程(myProc):
SELECT @body = 'User: ' + @admin_username + ' set Admin role TO: ' + [username]
FROM [dbo].[users]
WHERE [id] = @user_id;
并希望在当前过程
中的另一个存储过程调用中添加@body
exec sendMail '','',@body
怎么做? @body
类型为nvarchar(max)
我认为我选错了因为当我执行我的程序时出错:无法插入空值
答案 0 :(得分:1)
确保您的@Admin_Username和[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
答案 1 :(得分:0)
如果给定user_id的username列为null,则@body将返回NULL。使用ISNULL([username],'')至少为用户名返回一个空字符串。
还尝试使用OUTPUT参数将@body返回到下一个存储过程。请参阅:http://technet.microsoft.com/en-us/library/ms187004(v=sql.105).aspx