Avec SQL Server 2005, je voudrais créer un curseur qui effectue une
recherche sur une base distante (et réaliser un traitement pour chacune
des données qu'il me retournera). J'ai donc essayé la syntaxe suivante
:
DECLARE mon_curseur CURSOR FOR
SELECT Champ
FROM @nomTable
WHERE Champ2 = 100
mais j'obtiens un message d'erreur qui me demande de déclarer la
variable @nomTable (alors qu'elle est déjà déclarée).
Ma syntaxe est elle correcte ? Y a t-il un moyen de réaliser le
traitement en utilisant le curseur tel que je le déclare, ou faut-il
passer par une autre procédure stockée qui accèderait aux données du
serveur distant ?
Avec SQL Server 2005, je voudrais cr�er un curseur qui effectue un e recherche sur une base distante (et r�aliser un traitement pour ch acune des donn�es qu'il me retournera). J'ai donc essay� la synt axe suivante :
DECLARE mon_curseur CURSOR FOR SELECT Champ FROM @nomTable WHERE Champ2 = 100
mais j'obtiens un message d'erreur qui me demande de d�clarer la variable @nomTable (alors qu'elle est d�j� d�clar �e).
Ma syntaxe est elle correcte ? Y a t-il un moyen de r�aliser le traitement en utilisant le curseur tel que je le d�clare, ou faut- il passer par une autre proc�dure stock�e qui acc�der ait aux donn�es du serveur distant ?
Merci de votre aide.
Hello,
Tu ne peux pas remplacer le nom d'une table par une varibale.......
Creer un store proc avec output paramter, faire un exec avec dyn
sql.....
Dans l'aid de sql cherche "OUTPUT cursor parameter"
Avec SQL Server 2005, je voudrais cr�er un curseur qui effectue un e
recherche sur une base distante (et r�aliser un traitement pour ch acune
des donn�es qu'il me retournera). J'ai donc essay� la synt axe suivante
:
DECLARE mon_curseur CURSOR FOR
SELECT Champ
FROM @nomTable
WHERE Champ2 = 100
mais j'obtiens un message d'erreur qui me demande de d�clarer la
variable @nomTable (alors qu'elle est d�j� d�clar �e).
Ma syntaxe est elle correcte ? Y a t-il un moyen de r�aliser le
traitement en utilisant le curseur tel que je le d�clare, ou faut- il
passer par une autre proc�dure stock�e qui acc�der ait aux donn�es du
serveur distant ?
Avec SQL Server 2005, je voudrais cr�er un curseur qui effectue un e recherche sur une base distante (et r�aliser un traitement pour ch acune des donn�es qu'il me retournera). J'ai donc essay� la synt axe suivante :
DECLARE mon_curseur CURSOR FOR SELECT Champ FROM @nomTable WHERE Champ2 = 100
mais j'obtiens un message d'erreur qui me demande de d�clarer la variable @nomTable (alors qu'elle est d�j� d�clar �e).
Ma syntaxe est elle correcte ? Y a t-il un moyen de r�aliser le traitement en utilisant le curseur tel que je le d�clare, ou faut- il passer par une autre proc�dure stock�e qui acc�der ait aux donn�es du serveur distant ?
Merci de votre aide.
zoltix
On 21 mai, 14:11, zoltix wrote:
Hello, Tu ne peux pas remplacer le nom d'une table par une varibale....... Creer un store proc avec output paramter, faire un exec avec dyn sql.....
Dans l'aid de sql cherche "OUTPUT cursor parameter"
> Avec SQL Server 2005, je voudrais cr�er un curseur qui effectue une > recherche sur une base distante (et r�aliser un traitement pour chacune > des donn�es qu'il me retournera). J'ai donc essay� la sy ntaxe suivante > :
> DECLARE mon_curseur CURSOR FOR > SELECT Champ > FROM @nomTable > WHERE Champ2 = 100
> mais j'obtiens un message d'erreur qui me demande de d�clarer la > variable @nomTable (alors qu'elle est d�j� d�cla r�e).
> Ma syntaxe est elle correcte ? Y a t-il un moyen de r�aliser le > traitement en utilisant le curseur tel que je le d�clare, ou fau t-il > passer par une autre proc�dure stock�e qui acc�d erait aux donn�es du > serveur distant ?
SET @nomTable = '[' + @ServerName + '].' + @Instance_Name +'.NomBase.dbo.MaTable' SELECT @statement = 'DECLARE mon_curseur CURSOR global FOR SELECT Champ FROM '+@nomTable+' WHERE Champ2 = 100 ' EXEC(@statement) open curObjects fetch next from curObjects into @object while (@@fetch_status = 0) begin ..... ...
On 21 mai, 14:11, zoltix <zol...@gmail.com> wrote:
Hello,
Tu ne peux pas remplacer le nom d'une table par une varibale.......
Creer un store proc avec output paramter, faire un exec avec dyn
sql.....
Dans l'aid de sql cherche "OUTPUT cursor parameter"
> Avec SQL Server 2005, je voudrais cr�er un curseur qui effectue une
> recherche sur une base distante (et r�aliser un traitement pour chacune
> des donn�es qu'il me retournera). J'ai donc essay� la sy ntaxe suivante
> :
> DECLARE mon_curseur CURSOR FOR
> SELECT Champ
> FROM @nomTable
> WHERE Champ2 = 100
> mais j'obtiens un message d'erreur qui me demande de d�clarer la
> variable @nomTable (alors qu'elle est d�j� d�cla r�e).
> Ma syntaxe est elle correcte ? Y a t-il un moyen de r�aliser le
> traitement en utilisant le curseur tel que je le d�clare, ou fau t-il
> passer par une autre proc�dure stock�e qui acc�d erait aux donn�es du
> serveur distant ?
SET @nomTable = '[' + @ServerName + '].' + @Instance_Name
+'.NomBase.dbo.MaTable'
SELECT @statement = 'DECLARE mon_curseur CURSOR global FOR SELECT
Champ FROM '+@nomTable+' WHERE Champ2 = 100 '
EXEC(@statement)
open curObjects fetch next from curObjects into @object
while (@@fetch_status = 0)
begin .....
...
> Avec SQL Server 2005, je voudrais cr�er un curseur qui effectue une > recherche sur une base distante (et r�aliser un traitement pour chacune > des donn�es qu'il me retournera). J'ai donc essay� la sy ntaxe suivante > :
> DECLARE mon_curseur CURSOR FOR > SELECT Champ > FROM @nomTable > WHERE Champ2 = 100
> mais j'obtiens un message d'erreur qui me demande de d�clarer la > variable @nomTable (alors qu'elle est d�j� d�cla r�e).
> Ma syntaxe est elle correcte ? Y a t-il un moyen de r�aliser le > traitement en utilisant le curseur tel que je le d�clare, ou fau t-il > passer par une autre proc�dure stock�e qui acc�d erait aux donn�es du > serveur distant ?
SET @nomTable = '[' + @ServerName + '].' + @Instance_Name +'.NomBase.dbo.MaTable' SELECT @statement = 'DECLARE mon_curseur CURSOR global FOR SELECT Champ FROM '+@nomTable+' WHERE Champ2 = 100 ' EXEC(@statement) open curObjects fetch next from curObjects into @object while (@@fetch_status = 0) begin ..... ...