BOnjour,
J'ai créé un déclencheur qui porte à la fois sur l'insertion et la mise à jour dans une table qui porte la contrainte de clé étarngère suivante :
En tentant une insertion sur la table 'Employe', avec une valeur de 'code_service' non référencée dans la table 'Service', j'obtiens le message d'erreur suivant :
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 alter table "Employe" add constraint "Service_Employe_FK1" foreign key ( "code_service") references "Service" ( "code_service") on update no action on delete no action CREATE TRIGGER trEmploye ON Employe FOR INSERT,UPDATE AS IF UPDATE(code_service) BEGIN DECLARE @newCodeService NVARCHAR(6) SELECT @newCodeService = (SELECT code_service FROM Inserted) IF NOT EXISTS(SELECT code_service FROM Service WHERE Service.code_service=@newCodeService) INSERT INTO Service VALUES (@newCodeService, @newCodeService, NULL) COMMIT END;
Comment remédier à cela ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Msg 547, Level 16, State 0, Line 2 L'instruction INSERT est en conflit avec la contrainte FOREIGN KEY 'Service_Employe_FK1'. Le conflit s'est produit dans la base de données 'BDD_Absences', table 'dbo.Service', column 'code_service'.
Partager