SQL Serverでは、FILEPROPERTY()
を使用できます。 指定されたデータベースファイルのプロパティ値を返す関数。戻り値は1または0(入力が無効な場合はNULL)です。
これを使用するには、ファイルの論理ファイル名と返されるプロパティ値を指定します。
例1-基本的なクエリ
実例を示します。
USE WideWorldImporters; SELECT FILEPROPERTY('WWI_Primary', 'SpaceUsed') AS Result;
結果:
+----------+ | Result | |----------| | 1152 | +----------+
SpaceUsed
によって返される値 プロパティは、ファイルに割り当てられたページ数です。したがって、この例は、WWI_Primaryファイルに1152ページが割り当てられていることを示しています。
ログファイルを確認すると、別の結果が得られます:
SELECT FILEPROPERTY('WWI_Log', 'SpaceUsed') AS Result;
結果:
+----------+ | Result | |----------| | 14762 | +----------+
例2–IDからファイルの名前を取得する
ファイル名がわからないがIDはわかっている場合は、FILE_NAME()
を使用できます。 IDに基づいてファイルの名前を返す関数。
SELECT FILEPROPERTY(FILE_NAME(3), 'SpaceUsed') AS Result;
結果:
+----------+ | Result | |----------| | 52872 | +----------+
ここでも、ファイル名が返されます:
SELECT FILE_NAME(3) AS [File Name], FILEPROPERTY(FILE_NAME(3), 'SpaceUsed') AS [Space Used];
結果:
+--------------+--------------+ | File Name | Space Used | |--------------+--------------| | WWI_UserData | 52872 | +--------------+--------------+
例3–すべてのプロパティ値を返す
執筆時点では、FILEPROPERTY()
4つのプロパティ値を受け入れます。
WWI_Log
の4つのプロパティ値すべてを返す例を次に示します。 ファイル。
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;
結果:
+--------------+-----------------+-------------+-------------+ | IsReadOnly | IsPrimaryFile | IsLogFile | SpaceUsed | |--------------+-----------------+-------------+-------------| | 0 | 0 | 1 | 14763 | +--------------+-----------------+-------------+-------------+
例4–存在しないファイル
存在しないファイルを指定すると、次のようになります。
SELECT FILEPROPERTY('OOPS', 'SpaceUsed') AS Result;
結果:
+----------+ | Result | |----------| | NULL | +----------+
例5–無効なプロパティ値
ファイルが正しい場合も同じ結果が得られますが、無効なプロパティ値を指定しています。
SELECT FILEPROPERTY('WWI_Log', 'Oops') AS Result;
結果:
+----------+ | Result | |----------| | NULL | +----------+