В SQL Server можете да използвате FILEPROPERTY()
функция за връщане на стойността на свойството за определен файл на базата данни. Върнатата стойност е 1 или 0 (или NULL, ако входът е невалиден).
За да го използвате, предоставете логическото име на файла и стойността на свойството, която искате да върнете.
Пример 1 – Основна заявка
Ето пример за демонстрация.
ИЗПОЛЗВАЙТЕ WideWorldImporters;ИЗБЕРЕТЕ FILEPROPERTY('WWI_Primary', 'SpaceUsed') КАТО Резултат;
Резултат:
+---------+| Резултат ||----------|| 1152 |+---------+
Стойността, върната от SpaceUsed
свойството е броят на страниците, разпределени във файла. Следователно този пример ни казва, че файлът WWI_Primary има разпределени 1152 страници.
Ако проверя регистрационния файл, получавам различен резултат:
ИЗБЕРЕТЕ FILEPROPERTY('WWI_Log', 'SpaceUsed') КАТО резултат;
Резултат:
+---------+| Резултат ||----------|| 14762 |+---------+
Пример 2 – Получаване на името на файла от неговия идентификатор
Ако не сте сигурни в името на файла, но знаете неговия идентификатор, можете да използвате FILE_NAME()
функция за връщане на името на файла въз основа на неговия идентификатор.
ИЗБЕРЕТЕ FILEPROPERTY(FILE_NAME(3), 'SpaceUsed') КАТО Резултат;
Резултат:
+---------+| Резултат ||----------|| 52872 |+---------+
Ето го отново с върнатото име на файла:
ИЗБЕРЕТЕ FILE_NAME(3) КАТО [Име на файл], FILEPROPERTY(FILE_NAME(3), 'SpaceUsed') КАТО [Използвано пространство];
Резултат:
<пред>+--------------+--------------+| Име на файла | Използвано пространство ||--------------+--------------|| WWI_UserData | 52872 |+--------------+--------------+Пример 3 – Връщане на всички стойности на свойства
Към момента на писане, FILEPROPERTY()
приема четири стойности на свойства.
Ето пример, който връща всичките четири стойности на свойствата за WWI_Log
файл.
DECLARE @file_name varchar(50) ='WWI_Log';SELECT FILEPROPERTY(@file_name, 'IsReadOnly') КАТО IsReadOnly, FILEPROPERTY(@file_name, 'IsPrimaryFile') КАТО IsPrimaryFile, FILE'sIPERTY, FILEPROPERTY AS IsLogFile, FILEPROPERTY(@file_name, 'SpaceUsed') AS SpaceUsed;
Резултат:
+--------------+----------------+------------ +------------+| Само за четене | IsPrimaryFile | IsLogFile | Използвано пространство ||--------------+----------------+------------+ ------------|| 0 | 0 | 1 | 14763 |+--------------+----------------+------------+ ------------+
Пример 4 – Несъществуващ файл
Ето какво се случва, ако посочите файл, който не съществува.
ИЗБЕРЕТЕ FILEPROPERTY('OOPS', 'SpaceUsed') КАТО Резултат;
Резултат:
+---------+| Резултат ||----------|| NULL |+----------+
Пример 5 – Невалидна стойност на свойството
Получаваме същия резултат, когато файлът е правилен, но посочваме невалидна стойност на свойството.
ИЗБЕРЕТЕ FILEPROPERTY('WWI_Log', 'Oops') КАТО резултат;
Резултат:
+---------+| Резултат ||----------|| NULL |+----------+