En SQL Server, puede usar FILEPROPERTY()
función para devolver el valor de propiedad para un archivo de base de datos especificado. El valor devuelto es 1 o 0 (o NULL si la entrada no es válida).
Para usarlo, proporcione el nombre de archivo lógico del archivo y el valor de la propiedad que desea devolver.
Ejemplo 1:consulta básica
Aquí hay un ejemplo para demostrarlo.
USE WideWorldImporters; SELECT FILEPROPERTY('WWI_Primary', 'SpaceUsed') AS Result;
Resultado:
+----------+ | Result | |----------| | 1152 | +----------+
El valor devuelto por SpaceUsed
La propiedad es el número de páginas asignadas en el archivo. Por lo tanto, este ejemplo nos dice que el archivo WWI_Primary tiene asignadas 1152 páginas.
Si reviso el archivo de registro, obtengo un resultado diferente:
SELECT FILEPROPERTY('WWI_Log', 'SpaceUsed') AS Result;
Resultado:
+----------+ | Result | |----------| | 14762 | +----------+
Ejemplo 2:obtener el nombre del archivo a partir de su ID
Si no está seguro del nombre del archivo, pero conoce su ID, puede usar FILE_NAME()
función para devolver el nombre del archivo en función de su ID.
SELECT FILEPROPERTY(FILE_NAME(3), 'SpaceUsed') AS Result;
Resultado:
+----------+ | Result | |----------| | 52872 | +----------+
Aquí está de nuevo con el nombre del archivo también devuelto:
SELECT FILE_NAME(3) AS [File Name], FILEPROPERTY(FILE_NAME(3), 'SpaceUsed') AS [Space Used];
Resultado:
+--------------+--------------+ | File Name | Space Used | |--------------+--------------| | WWI_UserData | 52872 | +--------------+--------------+
Ejemplo 3:devolver todos los valores de propiedad
Al momento de escribir, FILEPROPERTY()
acepta cuatro valores de propiedad.
Aquí hay un ejemplo que devuelve los cuatro valores de propiedad para el WWI_Log
archivo.
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 | +--------------+-----------------+-------------+-------------+
Ejemplo 4:archivo inexistente
Esto es lo que sucede si especifica un archivo que no existe.
SELECT FILEPROPERTY('OOPS', 'SpaceUsed') AS Result;
Resultado:
+----------+ | Result | |----------| | NULL | +----------+
Ejemplo 5:valor de propiedad no válido
Obtenemos el mismo resultado cuando el archivo es correcto, pero especificamos un valor de propiedad no válido.
SELECT FILEPROPERTY('WWI_Log', 'Oops') AS Result;
Resultado:
+----------+ | Result | |----------| | NULL | +----------+