Voici une façon:
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'
EDIT : commenté joindre à sysusers pour que la requête fonctionne sur 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'
EDIT 2 : Pour 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'
Voici.
Quelques choses ici ...
Je vois également que vous tentiez d'extraire les informations de schéma des tables parent, je pense que pour ce faire, vous devez également joindre la table sysobjects sur elle-même afin que vous puissiez correctement obtenir les informations de schéma pour la table parent. la requête ci-dessus fait cela. De plus, la table sysusers n'était pas nécessaire dans les résultats, de sorte que Join a été supprimé.
testé avec SQL 2000, SQL 2005 et SQL 2008 R2
la source
SELECT Alias = Expression
. Il n'a pas été déprécié. Ce qui est déprécié l'estSELECT 'Alias' = Expression
. J'ai obtenu ces informations à partir de votre propre lien! Veuillez corriger la désinformation.J'ai eu la même tâche récemment et j'ai utilisé ce qui suit pour SQL Server 2012 DB. Utilisez Management Studio et connectez-vous à la base de données que vous souhaitez rechercher. Exécutez ensuite le script suivant.
la source
Vous pouvez également obtenir le corps des déclencheurs comme suit:
la source
la source
Utilisez cette requête:
C'est simple et utile.
la source
Et qu'en pensez-vous: très court et soigné :)
la source
cela fonctionne pour moi
la source
Voici ce que j'utilise (généralement enveloppé dans quelque chose que je fourre dans Model):
Comme vous le voyez, c'est un skosh plus McGyver, mais je pense que ça vaut le coup:
(Faites défiler vers la droite pour voir la dernière colonne et la plus utile)
la source
Utilisez cette requête:
la source
cela peut aider.
la source
Si vous recherchez des
ALL
déclencheurs, n'oubliez pas que MS-SQL possède à la fois des déclencheurs basés sur SQL (sysobjects.type = 'TR'
) et des déclencheurs basés sur CLR (sysobjects.type = 'TA'
).la source
Le code juste au-dessus est incorrect, comme indiqué:
la source
Nécromancement.
Publier simplement parce que toutes les solutions jusqu'à présent sont un peu en deçà de leur exhaustivité
la source
la source
la source
Une difficulté est que le texte ou la description a des sauts de ligne. Ma maladresse, pour le mettre dans quelque chose de plus tabulaire, consiste à ajouter un
HTML
littéral à laSELECT
clause, à copier et coller tout dans le bloc-notes, à enregistrer avec une extension html, à ouvrir dans un navigateur, puis à copier et coller dans une feuille de calcul. exemplevous devrez peut-être encore jouer avec les onglets pour obtenir la description dans un champ, mais au moins ce sera sur une seule ligne, ce que je trouve très utile.
la source
C # Cribs: Je me suis retrouvé avec cette doublure super générique. J'espère que cela sera utile à la fois à l'affiche originale et / ou aux personnes qui viennent de taper la même question que moi dans Google:
Caractéristiques de la requête:
la source
la source