Sql Trigger - 它属于哪个表?

时间:2009-04-07 18:22:20

标签: sql sql-server sql-server-2005 triggers

在Sql Server 2005触发器中是否有办法获取执行期间附加触发器的表的名称和架构?

2 个答案:

答案 0 :(得分:12)

SELECT
    OBJECT_NAME(parent_id) AS [Table],
    OBJECT_NAME(object_id) AS TriggerName
FROM
    sys.triggers
WHERE
    object_id = @@PROCID

然后您还可以使用OBJECTPROPERTY获取额外信息,例如之后/之前,删除/插入/更新,第一个/最后一个等

答案 1 :(得分:1)

这是一种了解它的肮脏方式

SELECT o.name
FROM sysobjects t
JOIN sysobjects o ON t.parent_obj = o.id
WHERE t.name = 'your_trigger_name'

<强> [编辑]

根据其他答案和评论,我认为这适合你(MSSQL2000版本)

SELECT o.name
FROM sysobjects t
JOIN sysobjects o ON t.parent_obj = o.id
WHERE t.id = @@PROCID