SQL Server 2008:Filestream如何从filestreamgroup物理删除上载的文件?
我已在SQL Server 2008:Filestream如何从filestreamgroup物理删除上载的文件?,sql,sql-server-2008,filestream,Sql,Sql Server 2008,Filestream,我已在C:\Test\FilestreamGroup1 和一个带有varBinary Filstream列的表 现在,当文件上载时,它将物理存储在FilestreamGroup1 现在我想知道两件事 FilestreamGroup1中存储的文件是哪种格式的(对于我发现的每个上载文件,都有2个编码文件) 其次,如何物理删除上传的文件(即,从表中删除记录就像执行删除命令,但这样做不会导致从NTFS中物理删除文件…因此,如何物理删除文件) 如果要立即从文件系统中删除文件,则需要使用检查点手动强制垃圾
C:\Test\FilestreamGroup1
和一个带有varBinary Filstream列的表
现在,当文件上载时,它将物理存储在FilestreamGroup1
现在我想知道两件事
- FilestreamGroup1中存储的文件是哪种格式的(对于我发现的每个上载文件,都有2个编码文件)
- 其次,如何物理删除上传的文件(即,从表中删除记录就像执行删除命令,但这样做不会导致从NTFS中物理删除文件…因此,如何物理删除文件)
这不是堆栈溢出问题,这属于ServerFault(管理员)。不过,这是一件好事- i、 从表中删除记录就像执行delete命令,但这样做不会导致物理错误 从NTFS中删除文件…那么如何物理删除文件 你知道拥有数据库的主要原因是什么吗?保证数据完整性 在进行备份之前,删除操作必须保留数据。您的备份策略是什么?您可能会注意到,当您进行更新时,会创建文件的另一个副本。。。。原因很简单。旧的备份必须仍然可用,这正是他们集成它的方式 FilestreamGroup1中存储的文件是哪种格式的(对于我发现的每个上载文件,都有2个编码文件) 不,文件是原始存储的。对它们进行编码有什么意义。。。如果有SQL函数来获取路径,并且客户端不使用SQL加载文件是受支持的场景(但是:向SQL询问文件名和路径,然后通过NTFS文件共享访问)。这还支持互操作(因为从网络加载的任何程序都可以提供SQL驱动的位置) 我强烈地假设您只有一个副本,并以某种方式进行更新,从而写入第二个文件 解释了如何使用SQL访问FileSTream数据 解释了如何使用Win32访问FIleStream数据 解释当删除一行时,文件会被留下。我发现使用非常简单的goodle搜索“sql filestream delete file”,这是结果列表中的第1项-您是否尝试过google?在删除一行后写入“checkpoint”。它将删除文件的物理存在 运行下面的查询和检查,文件将自动从文件系统中删除 从TableName检查点删除 谢谢 其次,如何物理删除上传的文件(即,从表中删除记录就像执行删除命令,但这样做不会导致从NTFS中物理删除文件…因此,如何物理删除文件) 检查点不会删除文件,文件是在后台过程中删除的,可能需要很长时间。要强制删除,请使用
sp_filestream_force_garbage_collection
编辑:仅适用于SQL Server 2012您希望在TSQL中执行此操作吗?的100%副本。不使用搜索的人总是关闭的好理由。欢迎使用stackoverflow。如果您通过参考和/或一些解释来改进您的答案,那将非常好。