Вот один из способов:
SELECT
sysobjects.name AS trigger_name
,USER_NAME(sysobjects.uid) AS trigger_owner
,s.name AS table_schema
,OBJECT_NAME(parent_obj) AS table_name
,OBJECTPROPERTY( id, 'ExecIsUpdateTrigger') AS isupdate
,OBJECTPROPERTY( id, 'ExecIsDeleteTrigger') AS isdelete
,OBJECTPROPERTY( id, 'ExecIsInsertTrigger') AS isinsert
,OBJECTPROPERTY( id, 'ExecIsAfterTrigger') AS isafter
,OBJECTPROPERTY( id, 'ExecIsInsteadOfTrigger') AS isinsteadof
,OBJECTPROPERTY(id, 'ExecIsTriggerDisabled') AS [disabled]
FROM sysobjects
INNER JOIN sysusers
ON sysobjects.uid = sysusers.uid
INNER JOIN sys.tables t
ON sysobjects.parent_obj = t.object_id
INNER JOIN sys.schemas s
ON t.schema_id = s.schema_id
WHERE sysobjects.type = 'TR'
РЕДАКТИРОВАТЬ : Закомментировано присоединиться к sysusers для запроса для работы на AdventureWorks2008.
SELECT
sysobjects.name AS trigger_name
,USER_NAME(sysobjects.uid) AS trigger_owner
,s.name AS table_schema
,OBJECT_NAME(parent_obj) AS table_name
,OBJECTPROPERTY( id, 'ExecIsUpdateTrigger') AS isupdate
,OBJECTPROPERTY( id, 'ExecIsDeleteTrigger') AS isdelete
,OBJECTPROPERTY( id, 'ExecIsInsertTrigger') AS isinsert
,OBJECTPROPERTY( id, 'ExecIsAfterTrigger') AS isafter
,OBJECTPROPERTY( id, 'ExecIsInsteadOfTrigger') AS isinsteadof
,OBJECTPROPERTY(id, 'ExecIsTriggerDisabled') AS [disabled]
FROM sysobjects
/*
INNER JOIN sysusers
ON sysobjects.uid = sysusers.uid
*/
INNER JOIN sys.tables t
ON sysobjects.parent_obj = t.object_id
INNER JOIN sys.schemas s
ON t.schema_id = s.schema_id
WHERE sysobjects.type = 'TR'
РЕДАКТИРОВАТЬ 2 : Для SQL 2000
SELECT
o.name AS trigger_name
,'x' AS trigger_owner
/*USER_NAME(o.uid)*/
,s.name AS table_schema
,OBJECT_NAME(o.parent_obj) AS table_name
,OBJECTPROPERTY(o.id, 'ExecIsUpdateTrigger') AS isupdate
,OBJECTPROPERTY(o.id, 'ExecIsDeleteTrigger') AS isdelete
,OBJECTPROPERTY(o.id, 'ExecIsInsertTrigger') AS isinsert
,OBJECTPROPERTY(o.id, 'ExecIsAfterTrigger') AS isafter
,OBJECTPROPERTY(o.id, 'ExecIsInsteadOfTrigger') AS isinsteadof
,OBJECTPROPERTY(o.id, 'ExecIsTriggerDisabled') AS [disabled]
FROM sysobjects AS o
/*
INNER JOIN sysusers
ON sysobjects.uid = sysusers.uid
*/
INNER JOIN sysobjects AS o2
ON o.parent_obj = o2.id
INNER JOIN sysusers AS s
ON o2.uid = s.uid
WHERE o.type = 'TR'
Ну вот.
Несколько вещей здесь ...
Также я вижу, что вы пытались получить информацию о схеме родительских таблиц, я полагаю, что для этого вам также необходимо присоединить к себе таблицу sysobjects, чтобы вы могли правильно получить информацию о схеме для родительской таблицы. запрос выше делает это. Также таблица sysusers не была нужна в результатах, так что Join был удален.
протестировано с SQL 2000, SQL 2005 и SQL 2008 R2
источник
SELECT Alias = Expression
. Это не осуждается. Что устарела являетсяSELECT 'Alias' = Expression
. Я получил эту информацию по вашей собственной ссылке! Пожалуйста, исправьте дезинформацию.Недавно у меня была такая же задача, и я использовал следующее для sql server 2012 db. Используйте Management Studio и подключитесь к базе данных, которую хотите найти. Затем выполните следующий скрипт.
источник
Вы также можете получить триггеры следующим образом:
источник
источник
Используйте этот запрос:
Это просто и полезно.
источник
А что вы думаете по этому поводу: очень коротко и аккуратно :)
источник
это работает для меня
источник
Это то, что я использую (обычно в чем-то, что я добавляю в Model):
Как вы видите, это скорее всего МакГайвер, но я думаю, что оно того стоит:
(Прокрутите вправо, чтобы увидеть последний и самый полезный столбец)
источник
Используйте этот запрос:
источник
это может помочь
источник
Если вы ищете
ALL
триггеры, помните, что в MS-SQL есть как триггеры на основе SQL (sysobjects.type = 'TR'
), так и триггеры на основе CLR (sysobjects.type = 'TA'
).источник
Код выше приведен неверно, как показано:
источник
Necromancing.
Просто публикация, потому что все решения пока не дотягивают до полноты.
источник
источник
источник
Одна трудность заключается в том, что текст или описание имеют перевод строки. Мой неуклюжий клочок, чтобы перевести его в нечто более табличное, - добавить
HTML
литерал вSELECT
предложение, скопировать и вставить все в блокнот, сохранить с расширением html, открыть в браузере, затем скопировать и вставить в электронную таблицу. примервам, возможно, все еще придется дурачиться с вкладками, чтобы поместить описание в одно поле, но, по крайней мере, оно будет в одной строке, что я считаю очень полезным.
источник
C # шпаргалки: я закончил с этим супер общим лайнером. Надеюсь, что это полезно как для оригинального постера, так и для людей, которые только что напечатали тот же вопрос, который я задал в Google:
Характеристики запроса:
источник
источник