2013-06-25 59 views
1

我正在创建一个数据库级触发器,该触发器应仅根据更新哪些表执行特定操作。确定哪个表在数据库级触发器中已更新

随着定期的触发器,我只会使用IF UPDATED(column)

是否有某种方式来确定不仅更新的列,而且还有表?

回答

1

无法创建DDL触发器ON UPDATE

CREATE TRIGGER

DDL触发器,就像标准的触发器,在 响应事件时执行存储过程。但是与标准触发器不同,它们不会响应表 或视图上的UPDATE,INSERT或DELETE语句执行而不执行 。相反,它们主要是响应于数据定义语言(DDL)语句执行的 语句。这些包括CREATE,ALTER, DROP,GRANT,DENY,REVOKE和UPDATE STATISTICS语句。某些执行类似DDL的操作的系统存储过程也可以触发DDL触发器。

+0

谢谢,那么如何才能捕获数据库中的任何表的所有更新的最佳做法?这是否可能,而不在每张桌上放置触发器? – ose

+2

@ose - 完全按照您的设想/恐惧 - 如果您想跟踪每个表中的UPDATE,则必须将触发器/ CDC /更改跟踪应用于每个表。 –

+0

我喜欢写触发器..希望我仍然有这样的想法,我写了大约350个,都做同样的事情...... :( – ose

相关问题