Je reçois un message d'erreur lorsque je suis en train d'exécuter ce code dans SQL Server 2005:curseurs et mise à jour dans SQL Server
Msg 156, niveau 15, état 1, ligne 20
incorrect syntaxe proche du mot clé 'close'.
Msg 102, niveau 15, état 1, ligne 21
Syntaxe incorrecte près de 'nom_base'.
Quel est le problème avec mon code?
DECLARE @name nvarchar(max), @stat nvarchar(max)
set @stat = N'update DBNAME.dbo.Ad
set Label = ''Special Ad'' where Label =''AdXXXX'''
DECLARE dbname CURSOR FOR select name from sys.databases where name like '%config%'
open dbname
begin try
while 1=1
begin
fetch next from dbname into @name
set @stat=REPLACE(@stat,'DBNAME',@name)
exec sp_executesql @stat
end
end try
close dbname
deallocate dbname
Je n'utilise pas TRY tant dans TSQL, mais ne devrait-il pas y avoir un CATCH quelque part? –
juste par curiosité, comment avez-vous l'intention d'arrêter ce 'while'? – CyberDude
@CyberDude - Je suppose qu'il ira au-delà de la fin du curseur et obtiendra une erreur d'exécution. –