34,594
社区成员
发帖
与我相关
我的任务
分享
DECLARE cus_dbname CURSOR FOR SELECT dbname from b_customer
OPEN cus_dbname
declare @dbname varchar(10)
FETCH cus_dbname INTO @dbname
begin
use @dbname
select 1
end
FETCH cus_dbname INTO @dbname
CLOSE cus_dbname
DEALLOCATE cus_dbname
--举例:显示所有非系统库中的表的个数
EXEC sp_MSforeachdb 'if "?" not in ("tempdb","master","model","msdb") select "?" as dbName, count(1) as cnt from ?.sys.tables'
--举例:显示所有非系统库的每一个用户库中的表的个数
EXEC sp_MSforeachdb 'if "?" not in ("tempdb","master","model","msdb") select count(1) as cnt from ?.sys.tables'
SET @sql = 'use ' + @dbname + '; '+
'select 1'
DECLARE cus_dbname CURSOR FOR SELECT dbname from b_customer
OPEN cus_dbname
declare @dbname varchar(10)
FETCH NEXT FROM cus_dbname INTO @dbname
WHILE @@FETCH_STATUS=0
begin
use @dbname
select 1
FETCH NEXT FROM cus_dbname INTO @dbname
end
CLOSE cus_dbname
DEALLOCATE cus_dbname
语法有错误,游标应该这样写[/quote]
还是提示'@dbname' 附近有语法错误。[/quote]
DECLARE cus_dbname CURSOR FOR SELECT dbname from b_customer
OPEN cus_dbname
declare @dbname varchar(10),@sql VARCHAR(max)
FETCH NEXT FROM cus_dbname INTO @dbname
WHILE @@FETCH_STATUS=0
begin
SET @sql = 'use ' + @dbname + ';
go;
select 1'
exce (@sql)
FETCH NEXT FROM cus_dbname INTO @dbname
end
CLOSE cus_dbname
DEALLOCATE cus_dbname
只能写成动态sql来执行,直接这样use @dbname不行的
DECLARE cus_dbname CURSOR FOR SELECT dbname from b_customer
OPEN cus_dbname
declare @dbname varchar(10)
FETCH NEXT FROM cus_dbname INTO @dbname
WHILE @@FETCH_STATUS=0
begin
use @dbname
select 1
FETCH NEXT FROM cus_dbname INTO @dbname
end
CLOSE cus_dbname
DEALLOCATE cus_dbname
语法有错误,游标应该这样写[/quote]
还是提示'@dbname' 附近有语法错误。
DECLARE cus_dbname CURSOR FOR SELECT dbname from b_customer
OPEN cus_dbname
declare @dbname varchar(10)
FETCH NEXT FROM cus_dbname INTO @dbname
WHILE @@FETCH_STATUS=0
begin
use @dbname
select 1
FETCH NEXT FROM cus_dbname INTO @dbname
end
CLOSE cus_dbname
DEALLOCATE cus_dbname
语法有错误,游标应该这样写