Bonjour,

le problème est le 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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
BEGIN TRY
	BEGIN TRAN 
 
		...
 
		BEGIN TRY
			DEALLOCATE load_cursor
		END TRY	BEGIN CATCH	END CATCH
 
		DECLARE load_cursor CURSOR FOR
			SELECT ...
 
		OPEN load_cursor
			FETCH NEXT FROM load_cursor INTO @par_name
 
			WHILE @@FETCH_STATUS = 0
			BEGIN
				...
				FETCH NEXT FROM load_cursor INTO @par_name
			END
		CLOSE load_cursor
		DEALLOCATE load_cursor
 
		....
	COMMIT TRAN ;
END TRY
BEGIN CATCH
		BEGIN TRY
			DEALLOCATE load_cursor
		END TRY	BEGIN CATCH	END CATCH
	ROLLBACK TRAN 
	 .....
END CATCH
Y a t-il moyen de savoir si le curseur a été alloué ou pas
pour éviter ça:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
		BEGIN TRY
			DEALLOCATE load_cursor
		END TRY	BEGIN CATCH	END CATCH
Je trouve cette méthode trop bourrin, mias je n'arrive pas à trouver l'exemple ou on fait un DEALLOCATE conditionnel.

Je ne sais pas si j'étais assez clair.