visualizar una trigger tiene tabla saber los listar habilitado guardan esta donde delete como sql-server sql-server-2008

sql-server - una - show triggers sql server



¿Cómo encontrar todos los disparadores asociados con una tabla con SQL Server? (11)

Atravesar

Necesidad de enumerar todos los desencadenantes en la base de datos de SQL Server con el nombre de la tabla y el esquema de la tabla

Esta URL tiene un conjunto de consultas mediante las cuales puede obtener la lista de activadores asociados con una tabla en particular.

Creo que estás trabajando en sqlserver a continuación son los pasos para obtener modificar desencadenadores

Para modificar un disparador

  1. Expanda un grupo de servidores y luego expanda un servidor.

  2. Expanda Bases de datos, expanda la base de datos a la que pertenece la tabla que contiene el desencadenador y luego haga clic en Tablas.

  3. En el panel de detalles, haga clic con el botón derecho en la tabla en la que existe el desencadenador, señale Todas las tareas y luego haga clic en Administrar desencadenantes.

  4. En Nombre, seleccione el nombre del desencadenador.

  5. Cambie el texto del desencadenador en el campo Texto según sea necesario. Presione CTRL + TAB para sangrar el texto de un desencadenador de Administrador corporativo de SQL Server.

  6. Para verificar la sintaxis del desencadenador, haga clic en Comprobar sintaxis.

Creé un disparador para una tabla en SQL Server y funciona para mí.

Mi problema es: ¿cómo lo encuentro y lo modifico?

Uso esta consulta para encontrar mis disparadores:

select * from sys.triggers

Esto busca todos los factores desencadenantes, pero ¿cómo abrirlo y cambiar los desencadenantes?


Con esta consulta puede encontrar todos los disparadores en todas las tablas y todas las vistas.

;WITH TableTrigger AS ( Select Object_Kind = ''Table'', Sys.Tables.Name As TableOrView_Name , Sys.Tables.Object_Id As Table_Object_Id , Sys.Triggers.Name As Trigger_Name, Sys.Triggers.Object_Id As Trigger_Object_Id From Sys.Tables INNER Join Sys.Triggers On ( Sys.Triggers.Parent_id = Sys.Tables.Object_Id ) Where ( Sys.Tables.Is_MS_Shipped = 0 ) ), ViewTrigger AS ( Select Object_Kind = ''View'', Sys.Views.Name As TableOrView_Name , Sys.Views.Object_Id As TableOrView_Object_Id , Sys.Triggers.Name As Trigger_Name, Sys.Triggers.Object_Id As Trigger_Object_Id From Sys.Views INNER Join Sys.Triggers On ( Sys.Triggers.Parent_id = Sys.Views.Object_Id ) Where ( Sys.Views.Is_MS_Shipped = 0 ) ), AllObject AS ( SELECT * FROM TableTrigger Union ALL SELECT * FROM ViewTrigger ) Select * From AllObject Order By Object_Kind, Table_Object_Id


Consulta mucho más simple a continuación

select (select [name] from sys.tables where [object_id] = tr.parent_id ) as TableName ,* from sys.triggers tr


Esto podría ser útil

SELECT t.name AS TableName, tr.name AS TriggerName FROM sys.triggers tr INNER JOIN sys.tables t ON t.object_id = tr.parent_id WHERE t.name in (''TABLE_NAME(S)_GOES_HERE'');

De esta forma, solo tiene que agregar el nombre de las tablas y la consulta obtendrá todos los desencadenadores que necesita


Puedes hacer esto simplemente con SSMS. Simplemente vaya al nombre de su tabla y expanda el nodo Disparadores para ver una lista de activadores asociados con esa tabla. Haga clic derecho para modificar su disparador.


seleccione * de information_schema.TRIGGERS;


use sp_helptrigger para encontrar la lista de activación para las tablas asociadas


encontrar activadores en la tabla:

select so.name, text from sysobjects so, syscomments sc where type = ''TR'' and so.id = sc.id and text like ''%TableName%''

y puede encontrar el procedimiento de almacenamiento que tiene referencia de tabla:

SELECT Name FROM sys.procedures WHERE OBJECT_DEFINITION(OBJECT_ID) LIKE ''%yourtablename%''


select m.definition from sys.all_sql_modules m inner join sys.triggers t on m.object_id = t.object_id

Aquí solo copie la definición y modifique el disparador.

De lo contrario, puede ir a SSMS y expandir su base de datos y, en Programación, expandir Triggeres de base de datos, luego haga clic con el botón derecho en el activador específico y haga clic en modificar allí también puede cambiar.


select so.name, text from sysobjects so, syscomments sc where type = ''TR'' and so.id = sc.id and text like ''%YourTableName%''

De esta forma, puede enumerar todos los factores desencadenantes asociados con la tabla dada.


select t.name as TriggerName,m.definition,is_disabled from sys.all_sql_modules m inner join sys.triggers t on m.object_id = t.object_id inner join sys.objects o on o.object_id = t.parent_id Where o.name = ''YourTableName''

Esto le dará todos los desencadenadores en una tabla especificada