微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将参数值与字符串连接

如何解决将参数值与字符串连接

我正在使用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 举报,一经查实,本站将立刻删除。