【发布时间】:2009-04-07 18:22:19
【问题描述】:
在 Sql Server 2005 触发器中是否有办法获取触发器在执行期间附加到的表的名称和架构?
【问题讨论】:
标签: sql sql-server sql-server-2005 triggers
在 Sql Server 2005 触发器中是否有办法获取触发器在执行期间附加到的表的名称和架构?
【问题讨论】:
标签: sql sql-server sql-server-2005 triggers
SELECT
OBJECT_NAME(parent_id) AS [Table],
OBJECT_NAME(object_id) AS TriggerName
FROM
sys.triggers
WHERE
object_id = @@PROCID
然后您还可以使用OBJECTPROPERTY 获取额外信息,例如之后/之前、删除/插入/更新、第一个/最后一个等
【讨论】:
这是一种肮脏的认识方式
SELECT o.name
FROM sysobjects t
JOIN sysobjects o ON t.parent_obj = o.id
WHERE t.name = 'your_trigger_name'
[编辑]
根据其他答案和cmets,我认为这适合您(MSSQL2000版本)
SELECT o.name
FROM sysobjects t
JOIN sysobjects o ON t.parent_obj = o.id
WHERE t.id = @@PROCID
【讨论】: