Bonsoir!
Je souhaiterais fabriquer des clé primaire à partir de la concatenation de deux champs de la même table (PANIER).
Cette table est composé de trois collone :
1 - ID
2 - PANIER_NOM
3 - USER_ID (qui est le résultat de la commande USER_NAME(USER_ID))
Le fait d'avoir comme clé primaire la concaténation du nom de mon panier + l'indentifiant utilisateur me permettrais qu'il n'existe pas deux panier avec le meme nom.
Pour cela j'ai créer un trigger :
dès lors que je veux créer une nouvelle entrée SQL SERVER m'envoie gentillement boulé en me disant qu'une clé primaire ne peu avoir de valeur nulle.
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 ALTER TRIGGER [testconctat] ON [dbo].[PANIER] FOR INSERT, UPDATE AS DECLARE @panierId nvarchar(50),@nomPanier nvarchar(50), @userId nvarchar(50); select @userId = user_ID from INSERTED; select @nomPanier = PANIER_NOM from INSERTED; select @panierId = @userId + @nomPanier; BEGIN UPDATE dbo.PANIER set PANIER_ID=@panierId where PANIER_NOM in (select PANIER_NOM from inserted) END
Or si je fait ça :
Ca marche
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 insert into PANIER(PANIER_ID,PANIER_NOM) values ('uncaratere','monpanier') select * from PANIER
Peut pourriez vous me dire quelle est mon erreur?
Merci d'avance![]()
Partager