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。 可以从 sys.dm_filestream_non_transacted_handles (Transact-SQL) 动态管理视图获取 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

元数据

有关打开的非事务性文件句柄的信息,请查询动态管理视图 sys.dm_filestream_non_transacted_handles (Transact-SQL)

安全性

权限

要从 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

请参阅

概念

管理 FileTable