Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So verwenden Sie FILEPROPERTY() in SQL Server

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     |
+----------+