Где триггер сервера сохраняет в SQL Server? - PullRequest
7 голосов
/ 02 октября 2010

Пару дней назад я тренировался и написал несколько триггеров, таких как:

create trigger trg_preventionDrop
on all server 
for drop_database
as
print 'Can not Drop Database'
rollback tran

go 

create trigger trg_preventDeleteTable
on database
for drop_table
as 
print 'you can not delete any table'
rollback tran

Но проблема в том, что я не знаю, где он сохранился и как я могу удалить или редактировать эти.

Спасибо

Ответы [ 2 ]

11 голосов
/ 02 октября 2010

Триггер сервера

Вы можете увидеть их здесь

select * from sys.server_triggers

Для отбрасывания используйте этот синтаксис

drop trigger trg_preventionDrop on all server 

В Management Studio они находятся под узлом «Объекты сервера» -> «Триггеры»

Триггер базы данных

Вы можете увидеть их здесь

select * from yourdb.sys.triggers

Для отбрасывания используйте этот синтаксис

drop trigger trg_preventDeleteTable on database

В Management Studio они находятся в узле «Базы данных» -> «yourdb» -> «Программируемость» -> «Триггеры базы данных»

3 голосов
/ 30 октября 2012
Триггер

для конкретной таблицы находится в папке «DataBase» -> «YourDb» -> «YourTable» -> «Trigger» в Management Studio

, также можно найти триггер для конкретной таблицы при выполненииследующий sql:
EXEC sp_helptrigger yourtablename

...