Dans SQL Server, vous pouvez utiliser le FILEPROPERTY()
pour renvoyer la valeur de propriété d'un fichier de base de données spécifié. La valeur renvoyée est soit 1, soit 0 (ou NULL si l'entrée n'est pas valide).
Pour l'utiliser, indiquez le nom de fichier logique du fichier et la valeur de propriété que vous souhaitez renvoyer.
Exemple 1 – Requête de base
Voici un exemple pour illustrer.
USE WideWorldImporters; SELECT FILEPROPERTY('WWI_Primary', 'SpaceUsed') AS Result;
Résultat :
+----------+ | Result | |----------| | 1152 | +----------+
La valeur renvoyée par SpaceUsed
propriété est le nombre de pages allouées dans le fichier. Par conséquent, cet exemple nous indique que le fichier WWI_Primary a 1152 pages allouées.
Si je vérifie le fichier journal, j'obtiens un résultat différent :
SELECT FILEPROPERTY('WWI_Log', 'SpaceUsed') AS Result;
Résultat :
+----------+ | Result | |----------| | 14762 | +----------+
Exemple 2 - Obtenir le nom du fichier à partir de son ID
Si vous n'êtes pas sûr du nom du fichier, mais que vous connaissez son ID, vous pouvez utiliser le FILE_NAME()
fonction pour renvoyer le nom du fichier en fonction de son ID.
SELECT FILEPROPERTY(FILE_NAME(3), 'SpaceUsed') AS Result;
Résultat :
+----------+ | Result | |----------| | 52872 | +----------+
Le revoici avec le nom du fichier également renvoyé :
SELECT FILE_NAME(3) AS [File Name], FILEPROPERTY(FILE_NAME(3), 'SpaceUsed') AS [Space Used];
Résultat :
+--------------+--------------+ | File Name | Space Used | |--------------+--------------| | WWI_UserData | 52872 | +--------------+--------------+
Exemple 3 - Renvoyer toutes les valeurs de propriété
Au moment de la rédaction, FILEPROPERTY()
accepte quatre valeurs de propriété.
Voici un exemple qui renvoie les quatre valeurs de propriété pour le WWI_Log
fichier.
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;
Résultat :
+--------------+-----------------+-------------+-------------+ | IsReadOnly | IsPrimaryFile | IsLogFile | SpaceUsed | |--------------+-----------------+-------------+-------------| | 0 | 0 | 1 | 14763 | +--------------+-----------------+-------------+-------------+
Exemple 4 - Fichier inexistant
Voici ce qui se passe si vous spécifiez un fichier qui n'existe pas.
SELECT FILEPROPERTY('OOPS', 'SpaceUsed') AS Result;
Résultat :
+----------+ | Result | |----------| | NULL | +----------+
Exemple 5 - Valeur de propriété non valide
Nous obtenons le même résultat lorsque le fichier est correct, mais nous spécifions une valeur de propriété invalide.
SELECT FILEPROPERTY('WWI_Log', 'Oops') AS Result;
Résultat :
+----------+ | Result | |----------| | NULL | +----------+