如果服务器中的所有数据库的特定表值都需要打印。我想这下面的错误必须声明标量变量“@lookupname”
消息137,15级,状态1,行
必须声明标量变量 “@lookupname”。
有人可以告诉我我犯的错吗?
declare @name varchar(50);
declare Countofprovider cursor
for
SELECT name
FROM master.dbo.sysdatabases where name like '%CPM_%'
open Countofprovider
fetch next from Countofprovider into @name;
while @@FETCH_STATUS = 0
begin
--print 'Name : '+ @name+ ''
declare @sql varchar(MAX);
declare @lookupname varchar(100);
declare @lookupvalue varchar(100);
---------------------------
SET @sql = 'select @lookupname=lookupname,@lookupvalue=lookupvalue from [AUS-CPMLDGDB01].'[email protected]+'.cpm.ApplicationLookup where lookupname = ''IsPCPLeakageEnabled'' and lookupvalue = ''TRUE'''
print 'Name : '+ @name+ ', lookupname : '+ @lookupname+ ', Loolupvalue : '[email protected]+''
exec (@SQL)
---------------------------
fetch next from Countofprovider into @name
end
CLOSE Countofprovider;
DEALLOCATE Countofprovider;
其工作的SQL服务器上。 –
@ Mr.Bhosale不,它不会,它似乎工作,因为你没有一个类似'%CPM _%'这样的名字的数据库,所以'@@ FETCH_STATUS'永远不会有值'0',并且while中的代码永远不会执行。 – HoneyBadger
我在下面添加了工作代码。核实 –