sys.sp_kill_filestream_non_transacted_handles(Transact-SQL)

適用対象:SQL Server

FileTable データへの非トランザクション ファイル ハンドルを閉じます。

Transact-SQL 構文表記規則

構文

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