Trigger SQL Server avec Clause Where

Tekkeur Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
Tekkeur Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je souhaiterai avoir votre aide pour créer un trigger sur SQL Server.
Ma situation :
J’ai une table dbo.ACTIONS, avec les colonnes : Action_ID, Person_ID, Pause_Code, Next_state.
• J’aimerai créer un trigger qui envoie automatiquement une notification par mail à chaque fois qu’il y aura une ligne ajoutée dans la table dbo.ACTIONS dont la Pause_Code=2. Si le Pause_code !=2, je n’envoie pas une notification mail.

• Deuxième point, 2min après l’insertion de la ligne, si le Next_State est toujours null (Next_State est initialisé à Null au moment de l’insertion), j’envoie une autre notification, dans le cas contraire, je n’ai pas besoin d’envoyer une notification (cas où Next_State not null)
Merci d’avance pour votre aide.
A voir également:

1 réponse

Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
Bonjour,

Pour le premier point, tu peux faire un truc comme ça :
CREATE TRIGGER envoie_mail_action ON actions
AFTER INSERT
AS
IF EXISTS (SELECT 1 FROM INSERTED WHERE Pause_Code = 2)
BEGIN
    -- Envoyer la mail ici, avec sp_send_dbmail
END
GO


Pour le deuxième point, plutôt que quelque chose qui se déclenche deux minutes après l'insertion, je te propose plutôt un job sql qui va être exécuté toutes les 2 minutes et requêter les lignes dont Next_State est null.
Si ta table Action est grosse, tu as peut-être intérêt à utiliser une table dédiée aux lignes qui n'ont pas encore fait l'objet d'un envoi de mail, dans laquelle tu insères les Action_Id dans le trigger précédent, et que tu supprimes sitôt que tu n'en as plus besoin.

Xavier
0
Tekkeur Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
Merci Xavier, ça m'a bcp aidé.
0