sql-server - 触发器的 SQL if update() 语句

标签 sql-server triggers

我希望我的触发器仅在旧值不等于新值时执行更新。如果该值保持不变,我不希望我执行 if block 。

if UPDATE(interview)
    BEGIN 
    EXEC sp_send_dbmail
            @profile_name = 'SM_PRFL',
    @recipients = 'email',

    @subject = 'this is a test' ,
    @body = 'message'
            END

最佳答案

查看以下链接,查找“在 INSTEAD OF 触发器中使用插入和删除的表”:http://msdn.microsoft.com/en-us/library/ms191300(SQL.90).aspx

这应该允许您执行测试并根据需要执行操作。例如你可以...

If ( Update(interview))
BEGIN
    -- If column esb has been changed from its previous value
    IF ((SELECT esb FROM INSERTED) <> select esb FROM DELETED)
    BEGIN
    EXEC sp_send_dbmail
            @profile_name = 'SM_PRFL',
    @recipients = 'email',

    @subject = 'this is a test' ,
    @body = 'message'
    END
END

关于sql-server - 触发器的 SQL if update() 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10935195/

相关文章:

sql - OLE DB 提供程序 "ADSDSOObject"尚未在 Azure SQL 托管实例中注册

google-apps-script - 异常:无法检索表单数据。请稍后重试

sql - 在事务中更新表(使用 Service Broker 的审计触发器)

sql - 如何获得sql中每个答案的百分比?

sql - 从 SQL Server 中的大量表中删除时如何减少事务日志的使用?

sql - 抑制 SQL 输出

java - Parse 服务器上的 Webhooks

触发器执行后 MySQL 服务器重启

mysql - 如何创建将删除移动到另一个表的触发器?

sql - 如何用SQL设置列的排序规则?