如何解决将参数值与字符串连接
我正在使用sql Server2017。我的代码可以很好地应用于我的应用。但是,我想用一些文本/字符串发送参数值。我尝试了多种格式来组合或连接这两种格式。我已经试过了
@body = @AssociateTaskID +'您已被分配了此ID';
还尝试了这个@body = @AssociateTaskID + +'您已经被分配了这个ID';
我都收到语法错误。有什么方法可以做到这一点并使它起作用吗?如果是这样,语法是什么?
Begin
declare @AssociateTaskID int;
declare @TaskAction_A1_assigned varchar(50);
declare @TaskAction_A1_started varchar(100);
declare @TaskAsction_A1_completed varchar(100);
select @AssociateTaskID = s.AssociateTaskID from inserted s;
select @TaskAction_A1_assigned = s.TaskAction_A1_assigned from inserted s;
select @TaskAction_A1_started = s.TaskAction_A1_started from inserted s;
select @TaskAsction_A1_completed = s.TaskAsction_A1_completed from inserted s;
------Send notification to TaskAction_A1_owner
if update(TaskAction_A1_assigned)
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Echo System',@recipients = 'sampleemailer2@gmail.com',@subject = 'Echo System Notification',@body = @AssociateTaskID;
解决方法
可能您需要将此int
转换为字符串。 concat()
的隐式字符串转换功能非常方便:
@body = concat('You have been assigned this task: ',@AssociateTaskID);
,
可以将串联分配给变量。像这样
declare
@AssociateTaskID int,@TaskAction_A1_assigned varchar(50),@TaskAction_A1_started varchar(100),@TaskAsction_A1_completed varchar(100),@Message nvarchar(4000);
select @AssociateTaskID = s.AssociateTaskID,@TaskAction_A1_assigned = s.TaskAction_A1_assigned,@TaskAction_A1_started = s.TaskAction_A1_started,@TaskAsction_A1_completed = s.TaskAsction_A1_completed
from inserted s;
select @Message=concat(cast(@AssociateTaskID as nvarchar(12)),N'you have been assigned this id');
--if update(TaskAction_A1_assigned)
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Echo System',@recipients = 'sampleemailer2@gmail.com',@subject = 'Echo System Notification',@body = @Message;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。