Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.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 获取托管在链接服务器上的数据库的大小?_Sql_Sql Server_Sql Server 2008_Tsql_Sql Server 2012 - Fatal编程技术网

Sql 获取托管在链接服务器上的数据库的大小?

Sql 获取托管在链接服务器上的数据库的大小?,sql,sql-server,sql-server-2008,tsql,sql-server-2012,Sql,Sql Server,Sql Server 2008,Tsql,Sql Server 2012,有人知道如何获得托管在不同服务器上的数据库的大小吗?我基本上希望在服务器上的作业中监视该DB的大小。 我试过这样的方法: select db_name(dbid), str(convert(dec(15),sum(size))* 8192/ 1048576,10) from [LINKEDSERVER].master.sys.sysaltfiles group by dbid order by 2 desc 出于某种原因,这会为我提供当前服务器上的数据,而不是远程服务器上的数据。 另外,我

有人知道如何获得托管在不同服务器上的数据库的大小吗?我基本上希望在服务器上的作业中监视该DB的大小。 我试过这样的方法:

select db_name(dbid), str(convert(dec(15),sum(size))* 8192/ 1048576,10) 
from [LINKEDSERVER].master.sys.sysaltfiles 
group by dbid order by 2 desc
出于某种原因,这会为我提供当前服务器上的数据,而不是远程服务器上的数据。
另外,我在一个论坛上读到sysaltfiles只在服务器重启时更新?这将使它无法用于监视,所以您有更好的选择吗?

试试这个,它可以工作,我检查过了

EXEC ('SELECT d.name,
ROUND(SUM(mf.size) * 8 / 1024, 0) Size_MBs
FROM sys.master_files mf
INNER JOIN sys.databases d ON d.database_id = mf.database_id
WHERE d.database_id > 4 
GROUP BY d.name
ORDER BY d.name') AT [LINKEDSERVER]

sp_spaceused我没有要测试的链接服务器。我得到消息7411,级别16,状态1,第1行服务器“LINKEDSERVER”没有为RPC配置。好的,在链接服务器上将RPC设置为true,现在它可以工作了。谢谢