我们在删除SQL Filetable时遇到问题。每当我跑
select * from <MY SQL FILE TABLE>
我收到此错误消息
从服务器接收结果时发生传输级错误。 (提供者:共享内存提供者,错误:0 - 管道的另一端没有进程。)
当我看到sp_readerrorlog
时,我看到了此消息
SQL Server内部错误。 FILESTREAM管理器无法继续使用当前命令。
当我运行此查询时
ALTER DATABASE XXX
REMOVE FILEGROUP FStream1
我收到此消息:
无法删除文件组'FStream1',因为它不为空。
我尝试删除SQL Filetable
drop table `SQLFiletable_bck`
但是我收到了这个错误:
FILESTREAM文件组'FileStreamGroup1'没有分配给它的文件。在添加文件之前,无法在此文件组中填充FILESTREAM数据。
然后我尝试了这个选项
ALTER TABLE SQLFiletable_bck
SET (FILESTREAM_ON = "NULL")
但我收到此错误
由于表'SQLFiletable_bck'具有FILESTREAM列,因此无法删除FILESTREAM文件组或分区方案。
我无法删除SQL文件表
有人能告诉我在SQL Server 2012中强行清理FileStream及其FileGroup的方法吗?
答案 0 :(得分:1)
为了解决问题
ALTER TABLE TableName SET (FILESTREAM_ON = "NULL")
您必须使用FILESTREAM删除列。为了能够做到这一点,你可能也必须放弃一些约束:
ALTER TABLE TableName DROP CONSTRAINT DF_TableName_ColumnName;
ALTER TABLE TableName DROP COLUMN ColumnName;
ALTER TABLE TableName SET (filestream_on = "NULL");
ALTER DATABASE DatabaseName REMOVE FILE 'DatabaseFileName');
ALTER DATABASE DatabaseName REMOVE FILEGROUP "FilegroupName";