J'ai créé un déclencheur pour une table dans SQL Server et cela fonctionne pour moi.
Mon problème est: comment le trouver et le modifier?
J'utilise cette requête pour trouver mes déclencheurs:
select * from sys.triggers
Cette recherche tous les déclencheurs, mais comment l'ouvrir et changer les déclencheurs?
Vous pouvez le faire simplement avec SSMS. Allez simplement dans le nom de votre table et développez le nœud Déclencheurs pour afficher une liste des déclencheurs associés à cette table. Faites un clic droit pour modifier votre déclencheur .
select so.name, text
from sysobjects so, syscomments sc
where type = 'TR'
and so.id = sc.id
and text like '%YourTableName%'
De cette façon, vous pouvez lister tous les déclencheurs associés à la table donnée.
select m.definition from sys.all_sql_modules m inner join sys.triggers t
on m.object_id = t.object_id
Ici, copiez simplement la définition et modifiez le déclencheur.
Sinon, vous pouvez simplement accéder à SSMS et étendre votre base de données. Sous Programmabilité, développez Déclencheurs de base de données, cliquez avec le bouton droit sur le déclencheur spécifique, puis cliquez sur Modifier.
Cela pourrait être utile
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 cette façon, il vous suffit de brancher le nom des tables et la requête récupérera tous les déclencheurs dont vous avez besoin.
utilisez sp_helptrigger pour trouver la liste de déclencheurs des tables associées
trouver des déclencheurs sur la table:
select so.name, text
from sysobjects so, syscomments sc
where type = 'TR'
and so.id = sc.id
and text like '%TableName%'
et vous pouvez trouver la procédure de magasin qui a la référence de la table:
SELECT Name
FROM sys.procedures
WHERE OBJECT_DEFINITION(OBJECT_ID) LIKE '%yourtablename%'
Traverser
Cette URL contient un ensemble de requêtes permettant d’obtenir la liste des déclencheurs associés à une table donnée.
Je crois que vous travaillez dans sqlserver en suivant les étapes pour obtenir des déclencheurs de modification
Pour modifier un déclencheur
Développez un groupe de serveurs, puis développez un serveur.
Développez Bases de données, développez la base de données à laquelle appartient la table contenant le déclencheur .__, puis cliquez sur Tables.
Dans le volet d'informations, cliquez avec le bouton droit sur la table dans laquelle se trouve le déclencheur , Pointez sur Toutes les tâches, puis cliquez sur Gérer les déclencheurs.
Dans Nom, sélectionnez le nom du déclencheur.
Modifiez le texte du déclencheur dans le champ Texte si nécessaire. Appuyez sur CTRL + TAB pour mettre en retrait le texte d'un déclencheur. SQL Server Enterprise Manager.
Pour vérifier la syntaxe du déclencheur, cliquez sur Vérifier la syntaxe.
Avec cette requête, vous pouvez trouver tous les déclencheurs dans toutes les tables et toutes les vues.
;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
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'
Cela vous donnera tous les déclencheurs sur un Specified Table
sélectionnez * parmi information_schema.TRIGGERS;
Beaucoup de requête simple ci-dessous
select (select [name] from sys.tables where [object_id] = tr.parent_id ) as TableName ,* from sys.triggers tr