Я хочу удалить и изменить ранее созданные триггеры, но я не могу найти их где-нибудь в базе данных. Где они существуют и как редактировать или делить их
Не удалось найти, где триггеры хранятся в SQL Server 2008
Ответ 1
Вы можете найти триггеры в таблице node:
Ответ 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"
и затем выполняет его.