我收到的时候我试图在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 - 我认为他会取过去光标结束,并得到一个运行时错误。 –