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 的所有打开的非事务句柄。
可以传递NULL
table_name的值以关闭当前数据库中所有 FileTable 的所有打开的非事务句柄。 默认值为 NULL
。
[ @handle_id = ] handle_id
要关闭的各个句柄的可选 ID。 可以从sys.dm_filestream_non_transacted_handles动态管理视图获取handle_id。 每个 ID 在 SQL Server 实例中都是唯一的。 如果指定handle_id,则还必须为table_name提供值。
可以传递NULL
handle_id的值以关闭由table_name指定的 FileTable 的所有打开的非事务句柄。 默认值为 NULL
。
返回代码值
0
(成功)或 1
(失败)。
结果集
无。
注解
所需的handle_id与其他kill
命令中使用的工作单位无关session_id
。 sp_kill_filestream_non_transacted_handles
有关详细信息,请参阅 管理 FileTables。
元数据
有关打开非事务性文件句柄的信息,请查询动态管理视图 sys.dm_filestream_non_transacted_handles。
权限
必须具有 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