我收到的時候我試圖在SQL Server 2005中執行此代碼的錯誤消息:光標和更新在SQL Server
消息156,級別15,狀態1,行20
不正確關鍵字'close'附近的語法。
消息102,級別15,狀態1,行21
附近有語法錯誤DBNAME「。
什麼是錯我的代碼?
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
我不使用'TRY'那麼多的TSQL,但不應該有一個'CATCH'在那裏,什麼地方? –
出於好奇,你打算如何阻止'while'? – CyberDude
@CyberDude - 我認爲他會取過去光標結束,並得到一個運行時錯誤。 –