Sql Trigger - к какой таблице он принадлежит? - PullRequest
3 голосов
/ 07 апреля 2009

Есть ли способ в триггере Sql Server 2005 получить имя и схему таблицы, к которой прикреплен триггер во время выполнения?

Ответы [ 2 ]

12 голосов
/ 07 апреля 2009
SELECT
    OBJECT_NAME(parent_id) AS [Table],
    OBJECT_NAME(object_id) AS TriggerName
FROM
    sys.triggers
WHERE
    object_id = @@PROCID

Затем вы также можете использовать OBJECTPROPERTY , чтобы получить дополнительную информацию, такую ​​как после / до, удалить / вставить / обновить, первый / последний и т.д.

1 голос
/ 07 апреля 2009

Это грязный способ узнать это

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

[EDIT]

Согласно другому ответу и комментариям, я думаю, что это может вам подойти (версия MSSQL2000)

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