sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man använder FILEPROPERTY() i SQL Server

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

  1. Uppdatera primärnyckelvärdet med hjälp av enhetsramverket

  2. Upprörd med en transaktion

  3. fel:ORA-65096:ogiltigt vanligt användar- eller rollnamn i Oracle

  4. PHP (MySQL)-fel:Varning:mysql_num_rows() förväntar sig att parameter 1 är resurs