我刚开始在 SQL Server 2012 中使用 FileTables。我已经在远程服务器上设置了所有内容,并且一切顺利,没有任何问题。非事务性文件插入等工作得非常好。
但是,当我尝试从 Windows 资源管理器(右键单击 -> 新建 -> 文本文档)在 FileTable 共享目录中创建一个新的文本文件时,它完全冻结了。现在,当我在 FileTable 上执行查询时,查询只是冻结而我没有得到任何响应。所以我认为我来自文件系统的非事务性插入已锁定 FileTable。
无论如何,这是我迄今为止尝试过的(没有成功):
杀死正在进行的文件流句柄 ( http://msdn.microsoft.com/en-us/library/gg492061.aspx#BasicsKilling ) 没有结果。处决只是冻结。
-- Kill all handles on database EXEC sp_kill_filestream_non_transacted_handles; GO -- Kill handles on filetable EXEC sp_kill_filestream_non_transacted_handles @table_name = 'dbo.MyFileTable'; GO -- Kill single handle EXEC sp_kill_filestream_non_transacted_handles @handle_id = <handle id>; GO
使数据库脱机。这会导致错误消息:
Msg 5061, Level 16, State 1, Line 2 ALTER DATABASE failed because a lock could not be placed on database 'FOO'. Try again later.
删除数据库。这会导致错误消息:
Msg 3702, Level 16, State 4, Line 2 Cannot drop database "FOO" because it is currently in use.
杀死我的数据库上正在进行的会话(?):
EXEC sp_who2 KILL <SPID>
如前所述,我无法与我的 FileTable 进行事务性和非事务性交互。如您所见,我什至无法删除自己的数据库。
关于可能导致此问题的任何建议?我应该小心使用 FileTables 吗?关于如何解决这个问题的任何建议?