Bal*_*lah 1 sql t-sql sql-server triggers
是否有一个SQL语句可用于确定表触发器将触发的事件?
例如,给出此触发器:
CREATE trigger [dbo].[tr_Stuff_upd_del] ON [dbo].[TABLE]
FOR UPDATE, DELETE
AS
...
Run Code Online (Sandbox Code Playgroud)
是否有一个声明会告诉我它将运行更新和删除.我可以检查特定文本的触发器定义,但肯定有更优雅的方式吗?
编辑:我遇到的主要问题是我不确定正确的术语是什么.所以这里是尝试编号2:我可以使用下面的脚本获取包含文本中DELETE任何位置的文本的触发器..现在我该怎么办如果触发器将触发FOR DELETE,则包括在该列表中AFTER UPDATE,INSTEAD OF UPDATE等等.
SELECT DISTINCT o.[name] AS trigger_name,t.name as table_name
FROM sys.sql_modules AS m
INNER JOIN sys.objects AS o ON m.object_id = o.object_id
INNER JOIN sys.objects t on t.object_id = o.parent_object_id
WHERE o.type='TR'
and m.definition LIKE '%DELETE%'
Run Code Online (Sandbox Code Playgroud)
您可以通过检查触发器中可用的数据inserted和deleted表中的数据来确定触发触发器的操作.
inserted- 它是insert.deleted和inserted- 有的数据update.inserted表包含更新后的值,deleted表包含更新前的值.deleted- 它是delete.| 归档时间: |
|
| 查看次数: |
778 次 |
| 最近记录: |