次の方法で共有


sp_kill_filestream_non_transacted_handles (Transact-SQL)

適用対象: SQL Server

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

Transact-SQL 構文表記規則

構文

sp_kill_filestream_non_transacted_handles [
    [ @table_name = ] 'table_name'
    , [ [ @handle_id = ] handle_id ]
    ]

引数

[ @table_name = ] 'table_name'

非トランザクション ハンドルを閉じるテーブルの名前。

handle_idを使用せずにtable_nameを渡して、FileTable の開いている非トランザクション ハンドルをすべて閉じることができます。

table_nameの値のNULLを渡して、現在のデータベース内のすべての FileTable に対して開いているすべての非トランザクション ハンドルを閉じることができます。 既定値は NULL です。

[ @handle_id = ] handle_id

閉じる個々のハンドルのオプションの ID です。 sys.dm_filestream_non_transacted_handles動的管理ビューからhandle_idを取得できます。 各 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 の管理」を参照してください。

Metadata

非トランザクション ファイル ハンドルを開く方法については、動的管理ビュー sys.dm_filestream_non_transacted_handlesクエリを実行します。

アクセス許可

sys.dm_filestream_non_transacted_handles動的管理ビューからファイル ハンドルを取得し、sp_kill_filestream_non_transacted_handlesを実行するには、VIEW DATABASE 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 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