Bonjour,
J'ai deux tables :Je voudrai, dans mon trigger d'insertion sur TBL_PERSONNE, mettre à jour la date et l'utilisateur qui ont effectué la modification.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 Create table [TBL_PERSONNE] ( [PK_PERSONNE] Integer NOT NULL, UNIQUE ([PK_PERSONNE]), [VCH_NOM] Varchar(96) NOT NULL, [VCH_PRENOM] Varchar(64) NULL, /* ... */ [USR_CREATE] Integer NOT NULL, [USR_UPDATE] Integer NULL, [USR_DELETE] Integer NULL, [DTE_CREATE] Char(8) NOT NULL, [DTE_UPDATE] Char(8) NULL, [DTE_DELETE] Char(8) NULL ) go Create table [TBL_UTILISATEUR] ( [PK_UTILISATEUR] Integer NOT NULL, UNIQUE ([PK_UTILISATEUR]), [FK_TYPUTIL] Integer NOT NULL, [FK_PERSONNE] Integer NOT NULL, UNIQUE ([FK_PERSONNE]), [VCH_LOGIN] Varchar(20) NOT NULL, UNIQUE ([VCH_LOGIN]), [VCH_MDP] Varchar(50) NOT NULL, UNIQUE ([VCH_MDP]), /* ... */ ) go
Je n'ai pas eu de problèmes pour la date :
Par contre, je ne sais pas comment récupérer l'utilisateur qui est connecté (sachant que l'utilisateur connecté à la base utilise le même login que celui dans l'application : VCH_LOGIN, ce qui me permettra de retrouver le PK_UTILISATEUR dont j'ai besoin). Bref, voilà une question tout simple à laquelle je n'ai pas la réponse :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 create trigger TRG_PERSONNE_INS on TBL_PERSONNE for insert as begin /* création à la date du jour */ UPDATE TBL_PERSONNE set TBL_PERSONNE.DTE_CREATE = (select convert(char(8), getdate(), 112)) where TBL_PERSONNE.PK_PERSONNE in (select INSERTED.PK_PERSONNE from INSERTED) end
Comment savoir quel est l'utilisateur qui effectue une operation ?
Merci d'avance pour l'aide :o)
Partager