Bonjour @ tous

Voila, je suis en train de coder une procédure stockée sur MS SQL 2000

J'ai un soucis avec des IF imbriqués, j'ai toujours un "Else" ou un "End" en trop quelque part mais je ne comprend pas bien mon erreur. Quelqu'un pourrait-il éclairer ma lanterne s'il vous plait ?

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
SET ANSI_NULLS ON 
GO
 
CREATE PROCEDURE RESTITUER_FILM
 
@idstock INT
 
AS
 
DECLARE @msgerreur VARCHAR(128)
 
 
/* on recherche l'exemplaire dans la table de stock */
 
BEGIN
if exists (select * from dbo.stock where idStock = @idstock)
 
 
/* On vérifie que l'exemplaire rendu est présent dans la table location */
 
	BEGIN
	if not exists ( select retour from dbo.location where LidStock = @idstock and retour != getdate())
 
 
		/* On met à jour la date de retour */
 
		BEGIN
		UPDATE location SET retour = getDate() WHERE LidStock = @idstock
		Print 'Date de retour de l exemplaire mis à jour'
		End
 
 
		/* On vérifie si il y a des relances associées à cet exemplaire */
 
		BEGIN
		If exists (select *  from relance, location where RidLoc = idLoc and LidStock = @idstock)
 
 
			/* On supprime les relances */
 
			Begin
			delete from dbo.relance where RidLoc = ( select idLoc from dbo.location where LidStock = @idStock)	
			End
 
		Else
 
			Print 'Cet exemplaire ne fait pas l objet de relance'
			End
 
	Else
 
		Print 'Cet exemplaire n est pas présent dans la liste des Locations !'
		End
 
Else
 
	Print 'Cet exemplaire n existe pas dans la liste des Stocks !'
	End
C'est sans doute une erreur toute bête, je le sent mais comme sa fait quelques heures que j'ai le nez dessus. Le conseil d'un oeil "neuf" m'aiderai beaucoup

Merci