-
USE VARIABLE CURSEUR
Bonjour,
Je souhaite faire varier dans un traitement le nom de la base de données.
J'ai donc créer un curseur comme suit, mais la ligne
execute('Use ' + @db)
ne fonctionne pas.
Merci d'avance
----------------------------------
DECLARE @db nvarchar(128)
declare curs1 cursor for SELECT name FROM master.sys.databases
open curs1
fetch next from curs1 into @db
WHILE @@FETCH_STATUS = 0
BEGIN
execute('Use ' + @db)
/* Ici Traitement Spécifique */
fetch next from curs1 into @db
END
CLOSE curs1
DEALLOCATE curs1
-
Bonjour,
Le contexte de la base de données n'est valable qu'à l'intérieur de l'instruction EXECUTE. C'est la raison pour laquelle votre traitement ne doit pas fonctionner.
++
-
use database curseur
Merci pour cette réponse, Je comprend mieux dans ce cas.
mais si je pose USE @db
j'obtiens le message 102 : Syntaxe incorrecte vers @db
Une solution est elle possible ?
Merci d'avance
-
Oui,
En fait il faut procéder de la sorte :
Code:
EXECUTE('Use ' + @db + ' ;PRINT DB_NAME() /* Traitement à mettre ici */')
++