I SQL Server kan du använda FILEPROPERTY()
funktion för att returnera egenskapsvärdet för en specificerad databasfil. Det returnerade värdet är antingen 1 eller 0 (eller NULL om inmatningen är ogiltig).
För att använda den, ange filens logiska filnamn och egenskapsvärdet som du vill returnera.
Exempel 1 – Grundläggande fråga
Här är ett exempel att visa.
USE WideWorldImporters; SELECT FILEPROPERTY('WWI_Primary', 'SpaceUsed') AS Result;
Resultat:
+----------+ | Result | |----------| | 1152 | +----------+
Värdet som returneras av SpaceUsed
egenskap är antalet sidor som tilldelats i filen. Därför talar det här exemplet om att filen WWI_Primary har 1152 sidor tilldelade.
Om jag kontrollerar loggfilen får jag ett annat resultat:
SELECT FILEPROPERTY('WWI_Log', 'SpaceUsed') AS Result;
Resultat:
+----------+ | Result | |----------| | 14762 | +----------+
Exempel 2 – Hämta filens namn från dess ID
Om du inte är säker på filnamnet, men du känner till dess ID, kan du använda FILE_NAME()
funktion för att returnera filens namn baserat på dess ID.
SELECT FILEPROPERTY(FILE_NAME(3), 'SpaceUsed') AS Result;
Resultat:
+----------+ | Result | |----------| | 52872 | +----------+
Här är den igen med filnamnet också returnerat:
SELECT FILE_NAME(3) AS [File Name], FILEPROPERTY(FILE_NAME(3), 'SpaceUsed') AS [Space Used];
Resultat:
+--------------+--------------+ | File Name | Space Used | |--------------+--------------| | WWI_UserData | 52872 | +--------------+--------------+
Exempel 3 – Returnera alla egenskapsvärden
I skrivande stund, FILEPROPERTY()
accepterar fyra egenskapsvärden.
Här är ett exempel som returnerar alla fyra egenskapsvärdena för 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 | +--------------+-----------------+-------------+-------------+
Exempel 4 – Icke-existerande fil
Det här är vad som händer om du anger en fil som inte finns.
SELECT FILEPROPERTY('OOPS', 'SpaceUsed') AS Result;
Resultat:
+----------+ | Result | |----------| | NULL | +----------+
Exempel 5 – Ogiltigt egenskapsvärde
Vi får samma resultat när filen är korrekt, men vi anger ett ogiltigt egenskapsvärde.
SELECT FILEPROPERTY('WWI_Log', 'Oops') AS Result;
Resultat:
+----------+ | Result | |----------| | NULL | +----------+