将参数值与字符串连接

Concatenate a parameter value with a string

我正在使用 SQL Server 2017。我的代码可以很好地满足我的应用需求。但是,我想发送一些 text/string 的参数值。我尝试了多种格式来组合或连接两者。我试过这个
@body = @AssociateTaskID + 'you have been assigned this id'; 也试过这个 @body = @AssociateTaskID + + 'you have been assigned this 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;