2014-08-29 153 views
2

我们在删除SQL文件表时遇到问题。每当我跑无法删除SQL文件表

select * from <MY SQL FILE TABLE> 

我收到此错误信息

A transport-level error has occurred when receiving results from the server. (provider: Shared Memory Provider, error: 0 - No process is on the other end of the pipe.)

当我看到sp_readerrorlog,我看到这条消息

SQL Server internal error. FILESTREAM manager cannot continue with current command.

当我运行此查询

ALTER DATABASE XXX 
REMOVE FILEGROUP FStream1 

我收到这条消息:

The filegroup 'FStream1' cannot be removed because it is not empty.

我试图删除SQL文件表

drop table `SQLFiletable_bck` 

,但我得到这个错误:

The FILESTREAM filegroup 'FileStreamGroup1' has no files assigned to it. FILESTREAM data cannot be populated on this filegroup until a file is added.

然后我尝试这个选项

ALTER TABLE SQLFiletable_bck 
SET (FILESTREAM_ON = "NULL") 

,但我得到这个错误

Cannot drop FILESTREAM filegroup or partition scheme since table 'SQLFiletable_bck ' has FILESTREAM columns.

我无法删除SQL文件表

谁能告诉我什么办法强行清理的FileStream和SQL Server 2012中文件组?

回答

0

为了解决

ALTER TABLE TableName SET (FILESTREAM_ON = "NULL") 

你必须放弃使用FILESTREAM列(S)。为了能够做到这一点,您可能不得不放弃一些限制:

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";