Bonjour,
Je souhaite mettre en place une double boucle via deux cursor.
Le problème c'est que lorsque j'utilise la variable du premier cursor dans le FROM d'affectation du deuxième cursor, je me fait jeter...
(Je cherche à boucler sur des tables ayant le même nom mais sur des serveurs différents)
(Je n'ai pas de problème de connexion avec ces différents serveurs >> Serveur liées OK et testé OK)
Savez vous pourquoi cela ne marche pas ?
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 CREATE PROCEDURE spNomProcedure AS DECLARE @Id_Serveur AS VARCHAR(15); DECLARE SERVEUR_CURSOR CURSOR FOR SELECT Id_Serveur FROM [NomBase].[dbo].[ListeServeur] OPEN SERVEUR_CURSOR FETCH NEXT FROM SERVEUR_CURSOR INTO @Id_Serveur WHILE @@FETCH_STATUS = 0 BEGIN DECLARE @NonVariable VARCHAR (50) ; DECLARE Ligne_CURSOR CURSOR FOR SELECT @NonVariable FROM [@Id_Serveur].[Nom_Base].[dbo].NomTable /* la variable @ dans le FROM ne passe pas... Dans le SELECT ou dans un WHERE c'est OK mais pas dans le FROM */ OPEN Ligne_CURSOR FETCH NEXT FROM Ligne_CURSOR INTO @NonVariable WHILE @@FETCH_STATUS = 0 BEGIN PRINT 'Le serveur : ' +@Id_Serveur+ ' // Le nom de la Table : NomTable // LA valeru de NomVariable : '+ @NonVariable ; FETCH NEXT FROM Ligne_CURSOR INTO @NonVariable END CLOSE Ligne_CURSOR DEALLOCATE Ligne_CURSOR FETCH NEXT FROM SERVEUR_CURSOR INTO @Id_Serveur END CLOSE SERVEUR_CURSOR DEALLOCATE SERVEUR_CURSOR GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO EXEC spNomProcedure ; GO
Auriez vous une idée pour résoudre mon problème ?
Par avance, un grand merci
Partager