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'

要關閉非交易句柄的數據表名稱。

您可以傳遞table_name而不handle_id,以關閉 FileTable 的所有開啟非交易句柄。

您可以針對table_name的值傳遞 NULL,以關閉目前資料庫中所有 FileTable 的所有開啟非交易句柄。 NULL 是預設值。

[ @handle_id = ] handle_id

要關閉之個別句柄的選擇性標識碼。 您可以從 sys.dm_filestream_non_transacted_handles (Transact-SQL) 動態管理檢視取得handle_id 每個標識碼在 SQL Server 實例中都是唯一的。 如果您指定handle_id,則也必須提供table_name的值

您可以針對 handle_id 的值傳遞 NULL,以關閉 table_name指定之 FileTable 的所有開啟非交易句柄。 NULL 是預設值。

傳回碼值

0 (成功)或 1 (失敗)。

結果集

無。

備註

所需的handle_id與在其他kill命令中使用的 或工作單位無關session_idsp_kill_filestream_non_transacted_handles

如需詳細資訊,請參閱 管理作業步驟

中繼資料

如需開啟非交易檔句柄的相關信息,請查詢動態管理檢視sys.dm_filestream_non_transacted_handles(Transact-SQL)。

權限

您必須具有 VIEW DATABASE STATE 許可權,才能從 sys.dm_filestream_non_transacted_handles 動態管理檢視取得檔案句柄,並執行 sp_kill_filestream_non_transacted_handles

範例

下列範例示範如何呼叫 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