ver una trigger tabla saber query los listing listar habilitado esta como all sql-server triggers metadata

sql-server - una - trigger ddl sql server



¿Cómo puedo obtener la definición(cuerpo) de un disparador en SQL Server? (4)

Al no poder encontrar una herramienta SQL diff que satisfaga mis necesidades, estoy escribiendo la mía. Entre las tablas INFORMATION_SCHEMA y sys, tengo una versión de trabajo en su mayoría completa. Pero una cosa que no puedo encontrar en los metadatos es la definición de un disparador, ya sabes, el código SQL real. ¿Estoy pasando por alto algo?

Gracias.

Gracias, Pete, ¡no sabía nada de eso!

Scott, estoy trabajando con paquetes de alojamiento muy básicos que no permiten conexiones remotas al DB. No sé por las especificaciones en RedGate (que no puedo pagar de todos modos) si proporcionan una solución alternativa para eso, y aunque también hay API (como la de Apex), no vi el apunto de invertir en una solución que aún requeriría más programación de mi parte. :)

Mi solución es colocar una página ASPX en el sitio que funcione como una especie de "servicio de esquema", devolviendo los metadatos recopilados como XML. Configuré una pequeña aplicación AJAX que compara cualquier número de instancias de catálogo con un maestro y muestra los difs. No es perfecto, pero es un gran paso adelante para mí.

¡Gracias de nuevo!



sp_helptext funciona para obtener el sql que conforma un desencadenador.

La columna de texto en la vista syscomments también contiene el sql utilizado para la creación de objetos.


SELECT DB_NAME() AS DataBaseName, dbo.SysObjects.Name AS TriggerName, dbo.sysComments.Text AS SqlContent FROM dbo.SysObjects INNER JOIN dbo.sysComments ON dbo.SysObjects.ID = dbo.sysComments.ID WHERE (dbo.SysObjects.xType = ''TR'') AND dbo.SysObjects.Name = ''<YourTriggerName>''


Para ampliar la respuesta de SQLMenace, aquí hay una consulta simple para devolver todos los desencadenantes y sus definiciones de una base de datos:

SELECT sysobjects.name AS trigger_name, OBJECT_NAME(parent_obj) AS table_name, OBJECT_DEFINITION(id) AS trigger_definition FROM sysobjects WHERE sysobjects.type = ''TR''