【发布时间】:2020-09-25 19:54:44
【问题描述】:
我使用的是 SQL Server 2017。我的代码适用于我的应用。但是,我想用一些文本/字符串发送参数值。我尝试了许多格式来组合或连接两者。我试过这个
@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;
【问题讨论】:
-
你得到哪个错误?
-
你没有告诉我们那些语法错误是什么。
SET @Variable = @Variable + ' Some String';是完全有效的语法。 -
另外,这看起来像是触发器的一部分。如果是这样,那就是致命的缺陷;它假定 DML 语句影响 one 行;那不是真的。此外,从触发器发送电子邮件是个坏主意。将数据放入一个池表中,然后使用计划任务从那里通过电子邮件发送数据。
-
它是触发器的一部分 - 这是上一个问题,它被适当地指出这种方法非常有缺陷。
-
“我已经看到这样做没有产生负面问题” 显着的性能下降不是负面问题吗?
标签: sql sql-server sql-server-2017