In SQL Server puoi utilizzare FILEPROPERTY()
funzione per restituire il valore della proprietà per un file di database specificato. Il valore restituito è 1 o 0 (o NULL se l'input non è valido).
Per utilizzarlo, fornisci il nome del file logico del file e il valore della proprietà che desideri restituire.
Esempio 1 – Query di base
Ecco un esempio da dimostrare.
USE WideWorldImporters; SELECT FILEPROPERTY('WWI_Primary', 'SpaceUsed') AS Result;
Risultato:
+----------+ | Result | |----------| | 1152 | +----------+
Il valore restituito da SpaceUsed
proprietà è il numero di pagine allocate nel file. Pertanto, questo esempio ci dice che il file WWI_Primary ha 1152 pagine allocate.
Se controllo il file di registro, ottengo un risultato diverso:
SELECT FILEPROPERTY('WWI_Log', 'SpaceUsed') AS Result;
Risultato:
+----------+ | Result | |----------| | 14762 | +----------+
Esempio 2:ottenere il nome del file dal suo ID
Se non sei sicuro del nome del file, ma ne conosci l'ID, puoi utilizzare FILE_NAME()
funzione per restituire il nome del file in base al suo ID.
SELECT FILEPROPERTY(FILE_NAME(3), 'SpaceUsed') AS Result;
Risultato:
+----------+ | Result | |----------| | 52872 | +----------+
Eccolo di nuovo con il nome del file restituito:
SELECT FILE_NAME(3) AS [File Name], FILEPROPERTY(FILE_NAME(3), 'SpaceUsed') AS [Space Used];
Risultato:
+--------------+--------------+ | File Name | Space Used | |--------------+--------------| | WWI_UserData | 52872 | +--------------+--------------+
Esempio 3 – Restituisci tutti i valori delle proprietà
Al momento della scrittura, FILEPROPERTY()
accetta quattro valori di proprietà.
Ecco un esempio che restituisce tutti e quattro i valori delle proprietà per il WWI_Log
file.
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;
Risultato:
+--------------+-----------------+-------------+-------------+ | IsReadOnly | IsPrimaryFile | IsLogFile | SpaceUsed | |--------------+-----------------+-------------+-------------| | 0 | 0 | 1 | 14763 | +--------------+-----------------+-------------+-------------+
Esempio 4 – File inesistente
Ecco cosa succede se specifichi un file che non esiste.
SELECT FILEPROPERTY('OOPS', 'SpaceUsed') AS Result;
Risultato:
+----------+ | Result | |----------| | NULL | +----------+
Esempio 5 – Valore della proprietà non valido
Otteniamo lo stesso risultato quando il file è corretto, ma specifichiamo un valore di proprietà non valido.
SELECT FILEPROPERTY('WWI_Log', 'Oops') AS Result;
Risultato:
+----------+ | Result | |----------| | NULL | +----------+