In SQL Server können Sie die FILEPROPERTY()
verwenden Funktion, um den Eigenschaftswert für eine angegebene Datenbankdatei zurückzugeben. Der zurückgegebene Wert ist entweder 1 oder 0 (oder NULL, wenn die Eingabe ungültig ist).
Um es zu verwenden, geben Sie den logischen Dateinamen der Datei und den Eigenschaftswert an, den Sie zurückgeben möchten.
Beispiel 1 – Grundlegende Abfrage
Hier ist ein Beispiel zur Veranschaulichung.
USE WideWorldImporters; SELECT FILEPROPERTY('WWI_Primary', 'SpaceUsed') AS Result;
Ergebnis:
+----------+ | Result | |----------| | 1152 | +----------+
Der von SpaceUsed
zurückgegebene Wert Eigenschaft ist die Anzahl der in der Datei zugewiesenen Seiten. Daher sagt uns dieses Beispiel, dass der Datei WWI_Primary 1152 Seiten zugeordnet sind.
Wenn ich die Protokolldatei überprüfe, erhalte ich ein anderes Ergebnis:
SELECT FILEPROPERTY('WWI_Log', 'SpaceUsed') AS Result;
Ergebnis:
+----------+ | Result | |----------| | 14762 | +----------+
Beispiel 2 – Abrufen des Dateinamens aus seiner ID
Wenn Sie sich des Dateinamens nicht sicher sind, aber die ID kennen, können Sie den FILE_NAME()
verwenden Funktion, um den Namen der Datei basierend auf ihrer ID zurückzugeben.
SELECT FILEPROPERTY(FILE_NAME(3), 'SpaceUsed') AS Result;
Ergebnis:
+----------+ | Result | |----------| | 52872 | +----------+
Hier wird es auch wieder mit dem Dateinamen zurückgegeben:
SELECT FILE_NAME(3) AS [File Name], FILEPROPERTY(FILE_NAME(3), 'SpaceUsed') AS [Space Used];
Ergebnis:
+--------------+--------------+ | File Name | Space Used | |--------------+--------------| | WWI_UserData | 52872 | +--------------+--------------+
Beispiel 3 – Alle Eigenschaftswerte zurückgeben
Zum Zeitpunkt des Schreibens FILEPROPERTY()
akzeptiert vier Eigenschaftswerte.
Hier ist ein Beispiel, das alle vier Eigenschaftswerte für WWI_Log
zurückgibt Datei.
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;
Ergebnis:
+--------------+-----------------+-------------+-------------+ | IsReadOnly | IsPrimaryFile | IsLogFile | SpaceUsed | |--------------+-----------------+-------------+-------------| | 0 | 0 | 1 | 14763 | +--------------+-----------------+-------------+-------------+
Beispiel 4 – Nicht vorhandene Datei
Folgendes passiert, wenn Sie eine Datei angeben, die nicht existiert.
SELECT FILEPROPERTY('OOPS', 'SpaceUsed') AS Result;
Ergebnis:
+----------+ | Result | |----------| | NULL | +----------+
Beispiel 5 – Ungültiger Eigenschaftswert
Wir erhalten dasselbe Ergebnis, wenn die Datei korrekt ist, aber wir geben einen ungültigen Eigenschaftswert an.
SELECT FILEPROPERTY('WWI_Log', 'Oops') AS Result;
Ergebnis:
+----------+ | Result | |----------| | NULL | +----------+