Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server 2008:Filestream如何从filestreamgroup物理删除上载的文件?_Sql_Sql Server 2008_Filestream - Fatal编程技术网

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。如果您通过参考和/或一些解释来改进您的答案,那将非常好。