OVH Cloud OVH Cloud

sp_settriggerorder

2 réponses
Avatar
mml
Bonjour,
L'ordre d'exécution du premier et dernier trigger d'un mode INSERT, UPDATE
ou DELETE peut être imposé grâce à sp_settriggerorder.

Mais comment voir quel est l'ordre qui a été imposé à tel ou tel trigger ?
Existe-t-il une procédure du genre sp_SHOWtriggerorder ?

Merci d'avance.

2 réponses

Avatar
Nicolas LETULLIER
Bonjour,

Non, il n'existe pas cette procédure stockée, et cette information n'existe
pas non plus dans les vues INFORMATION_SCHEMA, il faut donc attaquer la
table sysobjects.

Exemple :

DECLARE @tablename sysname
SET @tablename = 'MaTable'
SELECT
Name AS TriggerName,
OBJECTPROPERTY(id, 'TriggerUpdateOrder') AS UpdateOrder,
OBJECTPROPERTY(parent_obj, 'TableUpdateTriggerCount') AS TriggerCount
FROM sysobjects
WHERE parent_obj = OBJECT_ID(@tablename) AND Type = 'TR' And
OBJECTPROPERTY(id, 'ExecIsUpdateTrigger') = 1
ORDER BY 2

Nicolas.


"mml" a écrit dans le message de news:

Bonjour,
L'ordre d'exécution du premier et dernier trigger d'un mode INSERT, UPDATE
ou DELETE peut être imposé grâce à sp_settriggerorder.

Mais comment voir quel est l'ordre qui a été imposé à tel ou tel trigger ?
Existe-t-il une procédure du genre sp_SHOWtriggerorder ?

Merci d'avance.




Avatar
mml
Génial !
Merci beaucoup.


"Nicolas LETULLIER" a écrit dans le
message de news:%
Bonjour,

Non, il n'existe pas cette procédure stockée, et cette information


n'existe
pas non plus dans les vues INFORMATION_SCHEMA, il faut donc attaquer la
table sysobjects.

Exemple :

DECLARE @tablename sysname
SET @tablename = 'MaTable'
SELECT
Name AS TriggerName,
OBJECTPROPERTY(id, 'TriggerUpdateOrder') AS UpdateOrder,
OBJECTPROPERTY(parent_obj, 'TableUpdateTriggerCount') AS TriggerCount
FROM sysobjects
WHERE parent_obj = OBJECT_ID(@tablename) AND Type = 'TR' And
OBJECTPROPERTY(id, 'ExecIsUpdateTrigger') = 1
ORDER BY 2

Nicolas.


"mml" a écrit dans le message de news:

> Bonjour,
> L'ordre d'exécution du premier et dernier trigger d'un mode INSERT,


UPDATE
> ou DELETE peut être imposé grâce à sp_settriggerorder.
>
> Mais comment voir quel est l'ordre qui a été imposé à tel ou tel trigger


?
> Existe-t-il une procédure du genre sp_SHOWtriggerorder ?
>
> Merci d'avance.
>
>