Подтвердить что ты не робот

Не удалось найти, где триггеры хранятся в SQL Server 2008

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

4b9b3361

Ответ 1

Вы можете найти триггеры в таблице node:

enter image description here

Ответ 2

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

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

Ответ 3

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

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

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

Ответ 4

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

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

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

Ответ 5

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

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

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

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

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

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