Geo*_*ios 11 trigger sql-server
如何确定触发器是针对 INSERT、UPDATE 还是 DELETE 语句?
我已签入sys.triggers
,但看不到与触发器触发的操作相关的任何内容。
Geo*_*ios 12
该sys.triggers
表不公开这些数据,而是我们有两个选择:
对象属性
使用OBJECTPROPERTY元数据函数,我们可以将操作作为属性返回,如下所示:
OBJECTPROPERTY(object_id, 'ExecIsUpdateTrigger')
OBJECTPROPERTY(object_id, 'ExecIsInsertTrigger')
OBJECTPROPERTY(object_id, 'ExecIsDeleteTrigger')
Run Code Online (Sandbox Code Playgroud)
这将返回一个简单的位值,指示触发器是否在该特定操作上触发。
sys.trigger_events
根据文档,这包含触发器触发的每个事件的行。具体来说,我们感兴趣的列是type
和type_desc
。
type
是sys.trigger_event_types
表的外键-type_desc
似乎包含表中的type_name
列sys.trigger_event_types
。
可以使用以下脚本返回此数据:
SELECT
[o].[name]
,[t].[type_desc]
FROM
[sys].[trigger_events] AS [t]
INNER JOIN [sys].[objects] AS [o] ON
[o].[object_id] = [t].[object_id]
WHERE
[o].[name] = 'TriggerNameHere';
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
922 次 |
最近记录: |