我想查询SQL Server中的多个数据库,所以我想我可以创建一个名为@DBNAME的变量并将其传递给查询,如下所示(但它不起作用).
这将在一个循环中,其中DBNAME作为dbid上的计数逐步执行..我的计数工作,它打印出@DBNAME作为所有生产数据库..但我不能让它跨多个数据库查询!
IF EXISTS(从@ DBNAME.INFORMATION_SCHEMA.TABLES中选择1)
WHERE TABLE_TYPE ='BASE TABLE'和TABLE_NAME ='DataArea')SELECT'GETIN'AS res ELSE SELECT'aaargh'AS res --SELECT*From DataArea AS res ELSE SELECT NULL AS res;
你可以用这样的动态sql来做
declare @tablename as sysname, @dbname as sysname
select
@dbname = 'master',
@tablename = 'dbo.spt_fallback_db'
declare @script nvarchar(4000)
select @script = 'select top 10 * from ' + @dbname + '.' + @tablename
exec sp_executesql @script
Run Code Online (Sandbox Code Playgroud)
根据需要替换您的数据库和表名.只是使用一个表单主机进行测试.