Preciso descobrir o espaço usado pelo arquivo de banco de dados para vários bancos de dados por meio do servidor vinculado (de um servidor central a vários servidores SQL do cliente). Eu criei view no tamanho do cliente, para todos os bancos de dados:
CREATE VIEW [dbo].[view] AS SELECT name AS 'DataFileName',
physical_name AS 'DataPhysicalName',
ROUND(size / 128, 1) AS 'DataTotalSizeInMB',
ROUND(CAST(FILEPROPERTY(name, 'SpaceUsed') AS int) / 128.0, 1) AS
'DataSpaceUsedInMB',
ROUND(size / 128.0 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS int) / 128.0, 1) AS
'DataAvailableSpaceInMB' FROM [sys].[database_files] WHERE type = 0
e no lado do servidor eu usei loop para consultar esta visão. Mas a coluna "DataSpaceUsedInMB" funciona apenas para o banco de dados padrão para meu login.