sp_kill_filestream_non_transacted_handles (Transact-SQL)
適用対象: SQL Server
FileTable データへの非トランザクション ファイル ハンドルを閉じます。
構文
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