sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan bruges FILEPROPERTY() i SQL Server

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

  1. Tilslutning til en MySQL-database i .NET

  2. Hvordan angiver jeg datoen, når jeg skriver SQL-forespørgsel fra SQL Server, der er knyttet til Oracle?

  3. Hvordan bruger man % operator fra udvidelsen pg_trgm?

  4. Hvordan kan jeg undgå fejl i rå variabel længde for lange i SQL Developer?