Voici le principe, j'ai une table qui stocke une liste de table dans
lesquelles je dois effectué la même requete (un SELECT).
J'ai donc un curseur qui parcours cette liste, sauf que lorsque je fais:
select * from @tables (ou @tables est la variable de mon curseur ou sont
stockés les noms de mes tables), j'ai cette erreur :
Must declare the table variable @table
J'ai essayé avec du sql dynamique, même erreur.
Voici le code :
declare @tables varchar(50)
declare Cursor_name CURSOR FOR
SELECT Nom_tables from ma_table
"Christian" a écrit dans le message de news: [...]
Voici le code :
Essayez donc ça :
declare @tables varchar(50) declare Cursor_name CURSOR FOR SELECT Nom_tables from ma_table
OPEN Cursor_recence
FETCH NEXT FROM Cursor_name INTO @tables
WHILE @@FETCH_STATUS = 0 BEGIN
EXEC('SELECT distinct * FROM ' + @tables) FETCH NEXT FROM Cursor_name INTO @tables
END
CLOSE Cursor_name DEALLOCATE Cursor_name
-- Jérôme
Christian
excellent, ca fonctionne très bien.
Merci bcp...
"jeje" a écrit :
"Christian" a écrit dans le message de news: [...] > Voici le code :
Essayez donc ça :
declare @tables varchar(50) declare Cursor_name CURSOR FOR SELECT Nom_tables from ma_table
OPEN Cursor_recence
FETCH NEXT FROM Cursor_name INTO @tables
WHILE @@FETCH_STATUS = 0 BEGIN
EXEC('SELECT distinct * FROM ' + @tables) FETCH NEXT FROM Cursor_name INTO @tables
END
CLOSE Cursor_name DEALLOCATE Cursor_name
-- Jérôme
excellent, ca fonctionne très bien.
Merci bcp...
"jeje" a écrit :
"Christian" <Christian@discussions.microsoft.com> a écrit dans le
message de news: 0CC39CE4-B416-43BA-A517-198ECA067EBC@microsoft.com...
[...]
> Voici le code :
Essayez donc ça :
declare @tables varchar(50)
declare Cursor_name CURSOR FOR
SELECT Nom_tables from ma_table
OPEN Cursor_recence
FETCH NEXT FROM Cursor_name INTO @tables
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC('SELECT distinct * FROM ' + @tables)
FETCH NEXT FROM Cursor_name INTO @tables