Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment utiliser FILEPROPERTY() dans SQL Server

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     |
+----------+