sp_kill_filestream_non_transacted_handles (Transact-SQL)
FileTable データに対する非トランザクション ファイル ハンドルを閉じます。
構文
sp_kill_filestream_non_transacted_handles [[ @table_name = ] ‘table_name’, [[ @handle_id = ] @handle_id]]
引数
table_name
非トランザクション ハンドルを閉じるテーブルの名前。handle_id を指定せずに table_name を渡すと、FileTable のすべての開いている非トランザクション ハンドルを閉じることができます。
table_name の値として NULL を渡すと、現在のデータベース内のすべての FileTable のすべての開いている非トランザクション ハンドルを閉じることができます。 NULL は既定値です。
handle_id
閉じる個々のハンドルのオプションの ID です。 handle_id は、sys.dm_filestream_non_transacted_handles (Transact-SQL) 動的管理ビューから取得できます。 各 ID は SQL Server インスタンス内で一意です。 handle_id を指定する場合は、table_name の値も指定する必要があります。handle_id の値として NULL を渡すと、table_name で指定された FileTable のすべての開いている非トランザクション ハンドルを閉じることができます。 NULL は既定値です。
リターン コード値
0 (成功) または 1 (失敗)
結果セット
なし。
全般的な解説
sp_kill_filestream_non_transacted_handles で必要な handle_id は、他の kill コマンドで使用される session_id または作業単位とは関係ありません。
詳細については、「FileTable の管理」を参照してください。
メタデータ
開いている非トランザクション ファイル ハンドルの詳細については、動的管理ビュー sys.dm_filestream_non_transacted_handles (Transact-SQL) に対するクエリを実行してください。
セキュリティ
権限
sys.dm_FILESTREAM_non_transacted_handles 動的管理ビューからファイル ハンドルを取得し、sp_kill_filestream_non_transacted_handles を実行するには、VIEW DATABASE STATE 権限が必要です。
使用例
次の例は、FileTable データの非トランザクション ファイル ハンドルを閉じるために sp_kill_filestream_non_transacted_handles を呼び出す方法を示します。
-- Close all open handles in the current database.
sp_kill_filestream_non_transacted_handles
-- Close all open handles in myFileTable.
sp_kill_filestream_non_transacted_handles @table_name = ’myFileTable’
-- Close a specific handle in myFileTable.
sp_kill_filestream_non_transacted_handles @table_name = ’myFileTable’, @handle_id = 0xFFFAAADD
次の例は、handle_id を取得し、それを閉じるスクリプトの使用方法を示します。
DECLARE @handle_id varbinary(16);
DECLARE @table_name sysname;
SELECT TOP 1 @handle_id = handle_id, @table_name = Object_name(table_id)
FROM sys.dm_FILESTREAM_non_transacted_handles;
EXEC sp_kill_filestream_non_transacted_handles @dbname, @table_name, @handle_id;
GO