使用 SQL Server 2008 SP1,我删除了唯一一个与文件流关联的表,但每次尝试执行以下操作时:
更改数据库 ConsumerMarketingStore 删除文件 CMS_JobInstanceFiles
更改数据库 ConsumerMarketingStore 删除文件组 JobInstanceFiles
我收到以下异常:
消息 5042,级别 16,状态 10,第 2 行
无法删除文件“CMS_JobInstanceFiles”,因为它不为空。
消息 5042,级别 16,状态 11,第 3 行
无法删除文件组“JobInstanceFiles”,因为它不为空。
我到底如何摆脱 Filestream 文件和文件组?谢谢!
最佳答案
确保您删除的表实际上是唯一使用该文件流文件的表:
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'
上面查询的结果应该是空的。如果您有其他带有 Filestream 列的表并说您删除了这些列,该表仍将使用 Filestream 文件。摆脱这种用法的方法是将表的 Filestream 文件组设置为 NULL:
alter table t1 set (filestream_on = "NULL")
关于sql-server-2008 - SQL Server 2008 : Unable to remove a FileStream File and Filegroup,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2269610/