No SQL Server, você pode usar o
FILEPROPERTY()
função para retornar o valor da propriedade para um arquivo de banco de dados especificado. O valor retornado é 1 ou 0 (ou NULL se a entrada for inválida). Para usá-lo, forneça o nome do arquivo lógico do arquivo e o valor da propriedade que você deseja retornar.
Exemplo 1 – Consulta básica
Aqui está um exemplo para demonstrar.
USE WideWorldImporters; SELECT FILEPROPERTY('WWI_Primary', 'SpaceUsed') AS Result;
Resultado:
+----------+ | Result | |----------| | 1152 | +----------+
O valor retornado pelo
SpaceUsed
propriedade é o número de páginas alocadas no arquivo. Portanto, este exemplo nos informa que o arquivo WWI_Primary possui 1152 páginas alocadas. Se eu verificar o arquivo de log, recebo um resultado diferente:
SELECT FILEPROPERTY('WWI_Log', 'SpaceUsed') AS Result;
Resultado:
+----------+ | Result | |----------| | 14762 | +----------+
Exemplo 2 – Obtendo o nome do arquivo de seu ID
Se você não tem certeza do nome do arquivo, mas sabe seu ID, você pode usar o
FILE_NAME()
função para retornar o nome do arquivo com base em seu ID. SELECT FILEPROPERTY(FILE_NAME(3), 'SpaceUsed') AS Result;
Resultado:
+----------+ | Result | |----------| | 52872 | +----------+
Aqui está novamente com o nome do arquivo também retornado:
SELECT FILE_NAME(3) AS [File Name], FILEPROPERTY(FILE_NAME(3), 'SpaceUsed') AS [Space Used];
Resultado:
+--------------+--------------+ | File Name | Space Used | |--------------+--------------| | WWI_UserData | 52872 | +--------------+--------------+
Exemplo 3 – Retornar todos os valores de propriedade
No momento da escrita,
FILEPROPERTY()
aceita quatro valores de propriedade. Aqui está um exemplo que retorna todos os quatro valores de propriedade para o
WWI_Log
Arquivo. DECLARE @file_name varchar(50) = 'WWI_Log'; SELECT FILEPROPERTY(@file_name, 'IsReadOnly') AS IsReadOnly, FILEPROPERTY(@file_name, 'IsPrimaryFile') AS IsPrimaryFile, FILEPROPERTY(@file_name, 'IsLogFile') AS IsLogFile, FILEPROPERTY(@file_name, 'SpaceUsed') AS SpaceUsed;
Resultado:
+--------------+-----------------+-------------+-------------+ | IsReadOnly | IsPrimaryFile | IsLogFile | SpaceUsed | |--------------+-----------------+-------------+-------------| | 0 | 0 | 1 | 14763 | +--------------+-----------------+-------------+-------------+
Exemplo 4 – Arquivo inexistente
Veja o que acontece se você especificar um arquivo que não existe.
SELECT FILEPROPERTY('OOPS', 'SpaceUsed') AS Result;
Resultado:
+----------+ | Result | |----------| | NULL | +----------+
Exemplo 5 – Valor de propriedade inválido
Obtemos o mesmo resultado quando o arquivo está correto, mas especificamos um valor de propriedade inválido.
SELECT FILEPROPERTY('WWI_Log', 'Oops') AS Result;
Resultado:
+----------+ | Result | |----------| | NULL | +----------+