我需要为调查回复中的低结果创建触发通知,并且需要通过电子邮件发送。
完成的调查插入了以下内容:
Results_RecID Question Points
1800 Rate our service 2
1800 Recommend us? 3
1800 Additional comments? 0
1800 <potential question 4>
1800 <potential question 5>
1800 <potential question 6>
问题的数量可能会有所不同,具体取决于调查的设置方式。
使用以下方法检索最新的结果集:
SELECT srd.points
FROM dbo.SV_ResultsDtl srd
WHERE (srd.SV_ResultsHdr_RecID IN (SELECT MAX(srd.SV_ResultsHdr_RecID FROM SV_ResultsDtl srd))
AND (srd.points < 3)
触发器将针对低于3的每一行触发。
有没有办法只触发一次,包括通知中的所有结果&lt; 3,无论返回多少行?
答案 0 :(得分:0)
说到SQL SERVER,每个语句不是按行执行触发器。这意味着,如果你使用:
Insert into tableName (columns...)
values
(val1, val2),
(val1,val2)
然后只有在语句结束时触发器才会执行一次。我认为这就是你需要的。
还有一件事,你确定这个解决方案是安全的吗? 您假设最大值是当前调查的值。在某些情况下可能并非总是如此。
SELECT srd.points
FROM dbo.SV_ResultsDtl srd
WHERE (srd.SV_ResultsHdr_RecID IN (SELECT MAX(srd.SV_ResultsHdr_RecID FROM SV_ResultsDtl srd))
AND (srd.points < 3)
此致