在三个不同的表上,我有单独INSERT
的UPDATE
和DELETE
触发器。
我肯定知道它们按预期工作(尝试添加、删除、更新并确认更改到日志表)。但是,恰好删除或添加了行,而我的日志表没有任何内容。
所以我的问题是:例如,是否可以在不触发启用的 INSERT 触发器的情况下添加记录?
这是在 SQL Server 2005 上。
在三个不同的表上,我有单独INSERT
的UPDATE
和DELETE
触发器。
我肯定知道它们按预期工作(尝试添加、删除、更新并确认更改到日志表)。但是,恰好删除或添加了行,而我的日志表没有任何内容。
所以我的问题是:例如,是否可以在不触发启用的 INSERT 触发器的情况下添加记录?
这是在 SQL Server 2005 上。
如果执行的查询禁用了特定触发器的使用,例如通过使用
DISABLE TRIGGER { [ schema_name . ] trigger_name [ ,...n ] | ALL }
ON { object_name | DATABASE | ALL SERVER } [ ; ]
此外,正如 Damien 指出的那样,在某些情况下,您的触发器可能仅适用于单个记录。错误(简化示例:
UPDATE table SET field = value WHERE PK = (SELECT PK FROM inserted)
更好的:
UPDATE table SET field = value WHERE PK IN (SELECT PK FROM inserted)
向我们展示您的触发器,我们会弄清楚的。