Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在多个Dbs查询中运行脚本返回错误_Sql_Sql Server 2012 - Fatal编程技术网

Sql 在多个Dbs查询中运行脚本返回错误

Sql 在多个Dbs查询中运行脚本返回错误,sql,sql-server-2012,Sql,Sql Server 2012,我正在使用spmsforeachdb存储过程运行一个查询。我使用了服务器实例中的三个数据库:ExcelineDev、EXCE_NR1和EXCE_AKI declare @t table (dbname varchar(50),ss varchar(max),sss varchar(max)) DECLARE @command varchar(max) SELECT @command = 'IF ''?'' IN (''ExcelineDev'',''EXCE_NR1'',''EXCE_AKI'

我正在使用
spmsforeachdb
存储过程运行一个查询。我使用了服务器实例中的三个数据库:ExcelineDev、EXCE_NR1和EXCE_AKI

declare @t table (dbname varchar(50),ss varchar(max),sss varchar(max))
DECLARE @command varchar(max)

SELECT @command = 'IF ''?'' IN (''ExcelineDev'',''EXCE_NR1'',''EXCE_AKI'') 
BEGIN USE ? 
EXEC
(''
select DB_NAME(DB_ID()), category,name from usrpt.report
where name like ''''%leders%''''
'')
END'

print @command
insert into @t
EXEC sp_MSforeachdb @command
select * from @t
我得到以下错误:

'Msg 911,16级,状态1,第2行数据库'Migration\u Release\u 1' 不存在。请确保输入的名称正确。”


我很困惑,因为在我的服务器实例中没有名为“Migration\u Release\u 1”的数据库。SQL为什么要搜索此数据库?

我们没有在那里传递变量。它的行为类似于DB变量运行此命令:
从master.dbo.sysdatabases中选择名称
。该结果集中是否有任何迁移发布数据库的条目?没有。我运行了它并进行了检查…我认为这是由于在不关闭所有连接的情况下删除了迁移发布数据库…我的建议是调出sp_MSForEachDB过程的文本并手动遍历它,直到您确定哪个查询正在获取该数据库价值也许查询结果是缓存的,可以消除这个问题。