sql-server - una - show triggers sql server
¿Cómo encontrar todos los disparadores asociados con una tabla con SQL Server? (11)
Atravesar
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
Expanda un grupo de servidores y luego expanda un servidor.
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.
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.
En Nombre, seleccione el nombre del desencadenador.
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.
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