sql >> Database >  >> RDS >> Sqlserver

FILEPROPERTY() gebruiken in SQL Server

In SQL Server kunt u de FILEPROPERTY() functie om de eigenschapswaarde voor een opgegeven databasebestand te retourneren. De geretourneerde waarde is 1 of 0 (of NULL als de invoer ongeldig is).

Om het te gebruiken, geeft u de logische bestandsnaam van het bestand op en de eigenschapswaarde die u wilt retourneren.

Voorbeeld 1 – Basisquery

Hier is een voorbeeld om te demonstreren.

USE WideWorldImporters;
SELECT FILEPROPERTY('WWI_Primary', 'SpaceUsed') AS Result;

Resultaat:

+----------+
| Result   |
|----------|
| 1152     |
+----------+

De waarde die wordt geretourneerd door de SpaceUsed eigenschap is het aantal pagina's dat in het bestand is toegewezen. Daarom vertelt dit voorbeeld ons dat het WWI_Primary-bestand 1152 pagina's heeft toegewezen.

Als ik het logbestand controleer, krijg ik een ander resultaat:

SELECT FILEPROPERTY('WWI_Log', 'SpaceUsed') AS Result;

Resultaat:

+----------+
| Result   |
|----------|
| 14762    |
+----------+

Voorbeeld 2 – De bestandsnaam uit zijn ID halen

Als u niet zeker bent van de bestandsnaam, maar u wel de ID kent, kunt u de FILE_NAME() gebruiken functie om de naam van het bestand te retourneren op basis van zijn ID.

SELECT FILEPROPERTY(FILE_NAME(3), 'SpaceUsed') AS Result;

Resultaat:

+----------+
| Result   |
|----------|
| 52872    |
+----------+

Hier is het weer met de bestandsnaam ook geretourneerd:

SELECT 
  FILE_NAME(3) AS [File Name],
  FILEPROPERTY(FILE_NAME(3), 'SpaceUsed') AS [Space Used];

Resultaat:

+--------------+--------------+
| File Name    | Space Used   |
|--------------+--------------|
| WWI_UserData | 52872        |
+--------------+--------------+

Voorbeeld 3 – Alle eigenschapswaarden retourneren

Op het moment van schrijven, FILEPROPERTY() accepteert vier eigenschapswaarden.

Hier is een voorbeeld dat alle vier de eigenschapswaarden retourneert voor de WWI_Log bestand.

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;

Resultaat:

+--------------+-----------------+-------------+-------------+
| IsReadOnly   | IsPrimaryFile   | IsLogFile   | SpaceUsed   |
|--------------+-----------------+-------------+-------------|
| 0            | 0               | 1           | 14763       |
+--------------+-----------------+-------------+-------------+

Voorbeeld 4 – Niet-bestaand bestand

Dit is wat er gebeurt als je een bestand opgeeft dat niet bestaat.

SELECT FILEPROPERTY('OOPS', 'SpaceUsed') AS Result;

Resultaat:

+----------+
| Result   |
|----------|
| NULL     |
+----------+

Voorbeeld 5 – Ongeldige eigenschapswaarde

We krijgen hetzelfde resultaat als het bestand correct is, maar we specificeren een ongeldige eigenschapswaarde.

SELECT FILEPROPERTY('WWI_Log', 'Oops') AS Result;

Resultaat:

+----------+
| Result   |
|----------|
| NULL     |
+----------+

  1. Oracle Concurrent Manager

  2. Hoe maak ik verbinding met een SQL Server 2008-database met behulp van JDBC?

  3. MySQL-datumnotatie

  4. Fout bij het maken van een ruimtelijke database. FOUT:kon bibliotheek /usr/pgsql-9.1/lib/rtpostgis-2.0.so niet laden