通过链接服务器查询master_files表

时间:2015-06-22 11:48:12

标签: sql sql-server-2008

我在SQL2008R2上,我尝试通过链接服务器远程查询数据库文件,但是远程(A)混淆了id,并且不同的数据库ID在旁边有完全不同的文件名它。 如果我在目标服务器上本地查询文件,我会得到正确的文件列表。

- 甲

--remotely querying target server 
SELECT DB_NAME(a.database_id), a.* FROM [myLinkedServer].master.sys.master_files AS a WHERE DB_NAME(a.database_id) IN('db1','db2',...)

- 乙

--Run locally on target server
SELECT DB_NAME(a.database_id), a.* FROM master.sys.master_files AS a WHERE DB_NAME(a.database_id) IN('db1','db2',...)

查询A和B应该具有相同的结果集。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

正如Gordon所写,DB_NAME在本地服务器上进行了评估。 我解决了它到JOIN到远程服务器上的sys.databases,并从那里获取名称。

谢谢戈登!