我想要查询3个SQL服务器,但我只想查询某些数据库。这是可能的吗?我把它们设置为注册服务器,我可以在它们之间查询系统类型查询,但是,如果我想查询类似
的内容SELECT * FROM SJOB
我不能,因为不是每个数据库都有该表,所以它失败了。任何帮助将不胜感激。谢谢!
答案 0 :(得分:1)
您可以查询sys.tables
视图以检查表是否存在:
if exists(select * from sys.tables where type = 'U' and name = 'SJOB')
select * from SJOB
要在已注册的服务器组上使用它,您还需要为表不存在的服务器编写select
查询。架构需要匹配,但您可以使用top 0
不返回任何记录。您需要指定所有列,并且虚拟值需要与列类型匹配:
if exists(select * from sys.tables where type = 'U' and name = 'SJOB')
select * from SJOB
else
select top 0 1 as col1name, '' as col2name