適用対象:SQL Server
FileTable データへの非トランザクション ファイル ハンドルを閉じます。
構文
sys.sp_kill_filestream_non_transacted_handles
[ [ @table_name = ] N'table_name' ]
[ , [ @handle_id = ] handle_id ]
[ ; ]
引数
[ @table_name = ] N'table_name
非トランザクション ハンドルを閉じるテーブルの名前。
FileTableのすべてのオープンな非トランザクションハンドルを閉じる@handle_idなしで、@table_nameを渡すことができます。
NULLの値に対してを渡すことで、現在のデータベース内のすべてのファイルテーブルのオープンで非トランザクションハンドルを閉じることができます。 既定値は NULL です。
[ @handle_id = ] handle_id
閉じる個々のハンドルのオプションの ID です。 sys.dm_filestream_non_transacted_handles動的管理ビューから@handle_idを得ることができます。 各 ID は、SQL Server インスタンス内で一意です。 @handle_idを指定するなら、@table_nameの値も提供しなければなりません。
NULL
@handle_idの値を渡すと、@table_name指定されたFileTableのすべての非トランザクションハンドルを閉じることができます。 既定値は NULL です。
リターン コードの値
0 (成功) または 1 (失敗)。
結果セット
ありません。
解説
で必要なsp_kill_filestream_non_transacted_handlesは、他のsession_id コマンドで使用されるkillまたは作業単位とは関係ありません。
詳細については、「 FileTable の管理」を参照してください。
Metadata
非トランザクション ファイル ハンドルを開く方法については、動的管理ビュー sys.dm_filestream_non_transacted_handlesクエリを実行します。
アクセス許可
VIEW動的管理ビューからファイルハンドルを取得し、DATABASEを実行するには、sys.dm_filestream_non_transacted_handlessp_kill_filestream_non_transacted_handles STATE権限が必要です。
例
次の例では、 sp_kill_filestream_non_transacted_handles を呼び出して FileTable データの非トランザクション ファイル ハンドルを閉じる方法を示します。
-- 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 AS VARBINARY (16);
DECLARE @table_name AS SYSNAME;
SELECT TOP 1 @handle_id = handle_id,
@table_name = Object_name(table_id)
FROM sys.dm_FILESTREAM_non_transacted_handles;
EXECUTE sp_kill_filestream_non_transacted_handles
@dbname,
@table_name,
@handle_id;
GO