W SQL Server możesz użyć FILEPROPERTY()
funkcja zwracająca wartość właściwości dla określonego pliku bazy danych. Zwracana wartość to 1 lub 0 (lub NULL, jeśli dane wejściowe są nieprawidłowe).
Aby z niego skorzystać, podaj logiczną nazwę pliku i wartość właściwości, którą chcesz zwrócić.
Przykład 1 – zapytanie podstawowe
Oto przykład do zademonstrowania.
USE WideWorldImporters; SELECT FILEPROPERTY('WWI_Primary', 'SpaceUsed') AS Result;
Wynik:
+----------+ | Result | |----------| | 1152 | +----------+
Wartość zwracana przez SpaceUsed
właściwość to liczba stron przydzielonych w pliku. Dlatego ten przykład mówi nam, że plik WWI_Primary ma przydzielonych 1152 strony.
Jeśli sprawdzę plik dziennika, otrzymam inny wynik:
SELECT FILEPROPERTY('WWI_Log', 'SpaceUsed') AS Result;
Wynik:
+----------+ | Result | |----------| | 14762 | +----------+
Przykład 2 – Pobieranie nazwy pliku z jego identyfikatora
Jeśli nie jesteś pewien nazwy pliku, ale znasz jego identyfikator, możesz użyć FILE_NAME()
funkcja zwracająca nazwę pliku na podstawie jego identyfikatora.
SELECT FILEPROPERTY(FILE_NAME(3), 'SpaceUsed') AS Result;
Wynik:
+----------+ | Result | |----------| | 52872 | +----------+
Tutaj jest znowu ze zwróconą nazwą pliku:
SELECT FILE_NAME(3) AS [File Name], FILEPROPERTY(FILE_NAME(3), 'SpaceUsed') AS [Space Used];
Wynik:
+--------------+--------------+ | File Name | Space Used | |--------------+--------------| | WWI_UserData | 52872 | +--------------+--------------+
Przykład 3 – Zwróć wszystkie wartości właściwości
W chwili pisania tego tekstu FILEPROPERTY()
akceptuje cztery wartości właściwości.
Oto przykład, który zwraca wszystkie cztery wartości właściwości dla WWI_Log
plik.
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;
Wynik:
+--------------+-----------------+-------------+-------------+ | IsReadOnly | IsPrimaryFile | IsLogFile | SpaceUsed | |--------------+-----------------+-------------+-------------| | 0 | 0 | 1 | 14763 | +--------------+-----------------+-------------+-------------+
Przykład 4 – Nieistniejący plik
Oto, co się stanie, jeśli określisz plik, który nie istnieje.
SELECT FILEPROPERTY('OOPS', 'SpaceUsed') AS Result;
Wynik:
+----------+ | Result | |----------| | NULL | +----------+
Przykład 5 – Nieprawidłowa wartość właściwości
Ten sam wynik otrzymujemy, gdy plik jest poprawny, ale określamy nieprawidłową wartość właściwości.
SELECT FILEPROPERTY('WWI_Log', 'Oops') AS Result;
Wynik:
+----------+ | Result | |----------| | NULL | +----------+