SQL Server 2008:无法删除FileStream文件和文件组

Jam*_*der 13 filestream sql-server-2008

使用SQL Server 2008 SP1,我删除了唯一一个与其关联的文件流的表,但每次我尝试执行以下操作时:

alter database ConsumerMarketingStore删除文件CMS_JobInstanceFiles

alter database ConsumerMarketingStore删除文件组JobInstanceFiles

我得到以下异常:

消息5042,级别16,状态10,行2无法删除文件"CMS_JobInstanceFiles",因为它不为空.消息5042,级别16,状态11,行3无法删除文件组"JobInstanceFiles",因为它不为空.

我如何摆脱文件流文件和文件组?谢谢!

Paw*_*iak 14

确保您删除的表实际上是唯一使用该文件流文件的表:

select * 
from ConsumerMarketingStore.sys.tables t 
join ConsumerMarketingStore.sys.data_spaces ds 
 on t.filestream_data_space_id = ds.data_space_id 
 and ds.name = 'JobInstanceFiles'
Run Code Online (Sandbox Code Playgroud)

上述查询的结果应为空.如果您有其他表与Filestream列并说您删除了列,表仍将使用Filestream文件.摆脱这种用法的方法是将表的Filestream文件组设置为NULL:

alter table t1 set (filestream_on = "NULL")
Run Code Online (Sandbox Code Playgroud)