我正在寻找一个查询,它将从所有数据库中返回结果,但仅限于表存在的位置。
我已经运行EXEC sp_MsForEachDb @command1 = 'select * from ?.dbo.users'
但这会带来很多错误,因此隐藏了拥有这些表的数据库的结果
答案 0 :(得分:1)
`EXEC sp_MsForEachDb @command1 =
' use ?; if exists(select * from information_schema.tables where table_`name=''test'' )begin select * from test end'
上述语句将隐藏所有错误,因为它首先检查表的存在。
您也可以排除系统数据库,例如..
EXEC sp_MsForEachDb @command1 = ' use ?; if db_id()<=4 return if exists(select * from information_schema.tables where table_name=''test'' )begin select * from test end'
答案 1 :(得分:-1)
即使出现错误,您仍然可以进入结果标签