Probleme d'integrité dans une stored avec transaction

issoux Messages postés 58 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 6 mai 2008 - 19 nov. 2006 à 17:03
issoux Messages postés 58 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 6 mai 2008 - 19 nov. 2006 à 23:33
Conflit entre l'instruction INSERT et la contrainte COLUMN FOREIGN KEY

Voilà mon erreur : j'ai une transaction que voici (sous sql server 2000) :

CREATE PROCEDURE  CreerUtilisateur  @nom  as nvarchar(50),@prenom  as nvarchar(50),@login as nvarchar(50),@email  as nvarchar (50) ,@hdu as int ,@hda as int,@admin as int ,@enduser as int ,@viewer as int




as


begin tran




--insert into utilisateur values (@nom,@prenom,@login,@email)




if @hdu >0


insert into helpdeskUser(userid,nom) values (@@identity,'helpdeskuser')


if @hda >0




insert into helpdeskAdmin (userid,nom)values (@@identity,'helpdeskadmin')




if @admin >0


insert into admin (userid,nom)values (@@identity,'admin')




if @enduser >0




insert into enduser(userid,nom) values (@@identity,'enduser')




if @viewer >0


insert into viewer(userid,nom) values (@@identity,'viewer')




insert into utilisateur values (@nom,@prenom,@login,@email)




if (@@error=0) begin
          


      commit tran
end




else  
            begin rollback tran 


end
GO

2 réponses

cs_skweeky Messages postés 259 Date d'inscription mercredi 3 mai 2006 Statut Membre Dernière intervention 11 janvier 2010 8
19 nov. 2006 à 23:28
Bonjour,

Quels sont les relations entre les tables ?

Sinon à quoi servent les @@identity surtout pour la première requête étant donné que la valeur de celui-ci ne doit pas correspondre à rien de concret ?
Ce champ est il autoincrémenté ?

Cordialement

Christian Robert - Winwise
http://blogs.developpeur.org/christian/
MCT - Database Development / Database Administration
0
issoux Messages postés 58 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 6 mai 2008
19 nov. 2006 à 23:33
@@identity correspond au dernier id auto incrementé de la premiere requete , dumoins c ce que je veux faire .

Quant au relations :

Utilisateur (id,nom,login,email)

admin(iod,userid) -> userid est une clé etrangere de l'id utilisateur .

et ainsi de suite ^pour tout les autres roles (enduser,helpdeskUser etc...)

Merci
0
Rejoignez-nous