2
我需要从庞大的数据库中创建一个测试数据库,其中大部分数据都包含在文件流数据中。如何将所有文件流varbinary(max)字段设置为NULL?
我需要测试不是文件流相关的数据,所以我想要做的是删除varbinary(max)信息。
这些都是我在FILE_REPOSITORY_TABLE表中的字段:
[ID_FILE] [int] NOT NULL,
[FILE_DATA] [varbinary](max) FILESTREAM NULL,
[GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL
我试图做的是
Update FILE_REPOSITORY_TABLE
SET FILE = NULL
我期待这太删除的文件,但它并没有发生。
我无法删除记录,因为ID_FILE有FK链接。 (当从包含文件流数据的表中删除记录时,相关文件也被删除)。无论如何,我也尝试做一个备份,但是文件大小很大,即使这个表是满了NULL。
我该怎么办?
最后说明:我的目标是拥有500MB的备份而不是10GB的备份(我拥有9.5GB的文档)。这仅用于测试目的。
是......垃圾回收器......我试着用CHECKPOINT和CHECKPOINT 100(强制检查点在100秒内发生)。但没有运气。垃圾收集器似乎按照自己的步调进行......我仔细点击FIlestream文件夹并阅读文件数量(属性中),每几秒钟将删除几个文档。无论如何感谢您的答案,我会再问一个更具体的答案:http://stackoverflow.com/questions/3650387/how-to-force-the-filestream-garbage-collector-to-complete-its-work- with-the-highe – LaBracca 2010-09-06 09:37:40
附加说明:我接受这个答案是因为它帮助我了解问题与垃圾收集器有关。 – LaBracca 2010-09-06 09:38:58