Aquí hay una manera:
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'
EDITAR : Comentó unirse a sysusers para consultas para trabajar en 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'
EDITAR 2 : para 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'
Aqui tienes.
Un par de cosas aqui...
También veo que estaba intentando extraer la información del esquema de las tablas primarias, creo que para hacerlo también necesitaría unirse a la tabla de sysobjects para poder obtener correctamente la información del esquema de la tabla primaria. la consulta anterior hace esto. Además, la tabla sysusers no era necesaria en los resultados, por lo que Join se ha eliminado.
probado con SQL 2000, SQL 2005 y SQL 2008 R2
fuente
SELECT Alias = Expression
. No ha sido desaprobado. Lo que ha quedado en desuso esSELECT 'Alias' = Expression
. ¡Recibí esta información de su propio enlace! Por favor corrija la información errónea.Tuve la misma tarea recientemente y utilicé lo siguiente para SQL Server 2012 DB. Use el estudio de administración y conéctese a la base de datos que desea buscar. Luego ejecute el siguiente script.
fuente
También puede obtener el cuerpo de desencadenantes de la siguiente manera:
fuente
fuente
Use esta consulta:
Es simple y útil.
fuente
¿Y qué piensas de esto? Muy corto y ordenado :)
fuente
esto funciona para mi
fuente
Esto es lo que uso (generalmente envuelto en algo que llevo en Model):
Como ves, es un poco más de McGyver, pero creo que vale la pena:
(Desplácese hacia la derecha para ver la columna final y más útil)
fuente
Use esta consulta:
fuente
Esto puede ayudar.
fuente
Si está buscando
ALL
disparadores, recuerde que MS-SQL tiene disparadores basados en SQL (sysobjects.type = 'TR'
) y disparadores basados en CLR (sysobjects.type = 'TA'
).fuente
El código justo arriba es incorrecto como se muestra:
fuente
Nigromancia
Solo publico porque todas las soluciones hasta ahora están un poco por debajo de su integridad.
fuente
fuente
fuente
Una dificultad es que el texto o la descripción tienen saltos de línea. Mi torpe kludge, para obtenerlo en algo más tabular, es agregar un
HTML
literal a laSELECT
cláusula, copiar y pegar todo en el bloc de notas, guardar con una extensión html, abrir en un navegador, luego copiar y pegar en una hoja de cálculo. ejemploEs posible que aún deba perder el tiempo con pestañas para obtener la descripción en un campo, pero al menos estará en una línea, lo que me parece muy útil.
fuente
C # Cunas: terminé con este forro súper genérico. Espero que esto sea útil tanto para el afiche original como para las personas que escribieron la misma pregunta que hice en Google:
Características de la consulta:
fuente
fuente