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