I SQL Server kan du bruge FILEPROPERTY()
funktion til at returnere egenskabsværdien for en specificeret databasefil. Den returnerede værdi er enten 1 eller 0 (eller NULL, hvis input er ugyldigt).
For at bruge det skal du angive filens logiske filnavn og den egenskabsværdi, du vil have returneret.
Eksempel 1 – Grundlæggende forespørgsel
Her er et eksempel til at demonstrere.
USE WideWorldImporters; SELECT FILEPROPERTY('WWI_Primary', 'SpaceUsed') AS Result;
Resultat:
+----------+ | Result | |----------| | 1152 | +----------+
Værdien returneret af SpaceUsed
egenskab er antallet af sider, der er tildelt i filen. Derfor fortæller dette eksempel os, at WWI_Primary-filen har tildelt 1152 sider.
Hvis jeg tjekker logfilen, får jeg et andet resultat:
SELECT FILEPROPERTY('WWI_Log', 'SpaceUsed') AS Result;
Resultat:
+----------+ | Result | |----------| | 14762 | +----------+
Eksempel 2 – Hentning af filens navn fra dens ID
Hvis du ikke er sikker på filnavnet, men du kender dets ID, kan du bruge FILE_NAME()
funktion for at returnere filens navn baseret på dens ID.
SELECT FILEPROPERTY(FILE_NAME(3), 'SpaceUsed') AS Result;
Resultat:
+----------+ | Result | |----------| | 52872 | +----------+
Her er den igen med filnavnet også returneret:
SELECT FILE_NAME(3) AS [File Name], FILEPROPERTY(FILE_NAME(3), 'SpaceUsed') AS [Space Used];
Resultat:
+--------------+--------------+ | File Name | Space Used | |--------------+--------------| | WWI_UserData | 52872 | +--------------+--------------+
Eksempel 3 – Returner alle ejendomsværdier
I skrivende stund, FILEPROPERTY()
accepterer fire egenskabsværdier.
Her er et eksempel, der returnerer alle fire egenskabsværdier for WWI_Log
fil.
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;
Resultat:
+--------------+-----------------+-------------+-------------+ | IsReadOnly | IsPrimaryFile | IsLogFile | SpaceUsed | |--------------+-----------------+-------------+-------------| | 0 | 0 | 1 | 14763 | +--------------+-----------------+-------------+-------------+
Eksempel 4 – Ikke-eksisterende fil
Her er, hvad der sker, hvis du angiver en fil, der ikke eksisterer.
SELECT FILEPROPERTY('OOPS', 'SpaceUsed') AS Result;
Resultat:
+----------+ | Result | |----------| | NULL | +----------+
Eksempel 5 – Ugyldig ejendomsværdi
Vi får det samme resultat, når filen er korrekt, men vi angiver en ugyldig egenskabsværdi.
SELECT FILEPROPERTY('WWI_Log', 'Oops') AS Result;
Resultat:
+----------+ | Result | |----------| | NULL | +----------+