【问题标题】:Unable to delete SQL File table无法删除 SQL 文件表
【发布时间】:2015-04-21 00:03:11
【问题描述】:

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

select * from <MY SQL FILE TABLE>

我收到此错误消息

从服务器接收结果时发生传输级错误。 (提供者:共享内存提供者,错误:0 - 管道的另一端没有进程。)

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

SQL Server 内部错误。 FILESTREAM 管理器无法继续执行当前命令。

当我运行这个查询时

ALTER DATABASE XXX
REMOVE FILEGROUP FStream1

我收到这条消息:

无法删除文件组“FStream1”,因为它不为空。

我试图删除 SQL 文件表

drop table `SQLFiletable_bck`

但我收到此错误:

FILESTREAM 文件组“FileStreamGroup1”没有分配给它的文件。在添加文件之前,无法在此文件组中填充 FILESTREAM 数据。

然后我尝试了这个选项

ALTER TABLE SQLFiletable_bck 
SET (FILESTREAM_ON = "NULL")

但我收到此错误

无法删除 FILESTREAM 文件组或分区方案,因为表“SQLFiletable_bck”具有 FILESTREAM 列。

我无法删除 SQL 文件表

谁能告诉我在 SQL Server 2012 中强制清理 FileStream 及其 FileGroup 的任何方法?

【问题讨论】:

    标签: sql-server tsql sql-server-2012 filestream


    【解决方案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";
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-15
      • 1970-01-01
      相关资源
      最近更新 更多