次の方法で共有


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

関連項目

概念

FileTable の管理