Невозможно найти, где триггеры хранятся в SQL Server 2008 - PullRequest
41 голосов
/ 05 июля 2010

Я хочу удалить и изменить ранее созданные триггеры, но не могу найти их в базе данных.Где они существуют и как их редактировать или удалять

Ответы [ 5 ]

91 голосов
/ 05 июля 2010

Триггеры можно найти в узле таблицы:

enter image description here

12 голосов
/ 05 июля 2010

Под узлом Tables в SSMS (SQL Server Management Studio) для каждой таблицы есть узел Triggers.

Вы можете управлять своими триггерами оттуда.

8 голосов
/ 22 марта 2012

Вот лучший способ:

select a.[name] as trgname, b.[name] as [tbname] 
from sys.triggers a join sys.tables b on a.parent_id = b.object_id

Просто запустите его для базы данных, в которой, по вашему мнению, находится триггер.

5 голосов
/ 05 июля 2010

Вы также можете найти триггеры, запросив представления управления в SQL Server Management Studio:

SELECT
    OBJECT_NAME(object_id) 'Table name', *
FROM 
    sys.triggers

Это дает вам список всех триггеров и таблицу, в которой они определены для вашей текущей базы данных. Затем вы можете либо отключить, либо удалить их.

2 голосов
/ 02 июля 2013

Чтобы немного расширить предыдущие ответы, во всех последних версиях SQL Server можно щелкнуть правой кнопкой мыши триггер и выбрать: Script Trigger as… ALTER To… "New Query Editor Window"

. Откроется сценарий SQL с подробной информацией отриггер, если вы читаете код, вы заметите, что он включает синтаксис ALTER: ALTER TRIGGER [dbo].triggername ...

Это означает, что вы можете отредактировать SQL и нажать Execute, чтобы изменить триггер - это перезапишет предыдущее определение.*

Если триггеры были построены с использованием автоматических инструментов, в определении триггера вы можете найти повторяющийся код, который вы хотите удалить.

Стоит попробовать сначала выполнить сценарий, прежде чем пытаться что-либо редактировать., это скажет вам, если определение триггера является действительным.Если таблица или столбец были переименованы, все может выйти из синхронизации.

Аналогично полному удалению / удалению триггера выберите: Script Trigger as… DROP To… "New Query Editor Window" и затем выполните его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...