2012-06-04 24 views
0

我已經創建FILESTREAM組和VARBINARY Filstream列的表SQL Server 2008:Filestream如何物理刪除filestreamgroup上傳的文件?在<code>C:TestFilestreamGroup1</code></p> <p>

現在,當文件被上傳那麼物理存儲在FilestreamGroup1 ...

現在,這裏我想知道兩件事情

  • 在該格式的文件被存儲在FilestreamGroup1(爲每一個上傳文件我發現2編碼的文件)?
  • 其次如何刪除已上傳的文件物理(即刪除從表中的記錄就像執行刪除命令,但是這樣做,我會不會導致從NTFS文件的物理刪除...所以我怎麼能刪除文件物理)
+0

原因關閉? – RollerCosta

+0

你是否期待在TSQL中做到這一點? –

+0

[FILESTREAM文件被刪除行後留下的100%重複](http://stackoverflow.com/questions/1625001/filestream-files-being-left-behind-after-row-deleted)。有人不使用搜索總是一個很好的理由關閉。 – TomTom

回答

2

如果你想從文件系統instanly然後刪除文件,你需要使用檢查點

Link

2

這不是一個StackOverflow的問題,手動強制垃圾回收,這屬於ServerFault(管理)。它toucehs開發though-

即刪除從表中的記錄就像是執行刪除命令,但是這樣做,我會不會導致物理 刪除從NTFS文件...所以我怎麼可以刪除文件身體

你知道主要的原因是有一個數據庫?保證數據完整性。

一個刪除,直到備份被認爲必須圍繞保持數據。您的備份策略是什麼?您可能會注意到,當您進行更新時,會創建另一個文件副本....出於這個簡單原因。舊的必須仍然可用於備份,這是他們如何整合它。

在FilestreamGroup1中存儲哪種格式文件(對於每個上傳的文件,我找到了2個編碼文件)?

沒有,文件存儲的原始。會是什麼感覺它們編碼......如果有SQL函數來獲取路徑,這是一個支持的情況下,客戶端不使用SQL加載文件(但:要求SQL的文件名和路徑,然後通過NTFS文件共享訪問它)。這也支持互操作(如從網絡的任何程序加載可以喂一個SQL驅動的位置。

我強烈假設你有1個複製並以某種方式使導致寫入第二個文件的更新。

http://msdn.microsoft.com/en-us/library/cc645962.aspx

有一個解釋如何使用SQL訪問FILESTREAM數據。

http://technet.microsoft.com/en-us/library/cc645940(v=sql.105).aspx

有一個解釋如何使用Win32訪問FILESTREAM數據。

FILESTREAM files being left behind after row deleted

解釋,而文件都保留一行時,刪除後面。我發現使用極其平凡的搜索「sql文件流刪除文件」,它是結果列表中的項目1 - 你甚至嘗試谷歌?

+0

很好的解釋... – RollerCosta

-1

刪除一行後寫入「checkpoint」。它會刪除文件的物理存在。

運行下面的查詢和檢查,該文件正從文件系統自動

DELETE刪除了表名CHECKPOINT

感謝。

+0

歡迎來到stackoverflow。如果您通過參考和/或一些解釋來改進您的答案,那將會很好。 – Shahbaz

0

其次如何刪除已上傳的文件物理(即刪除從表中的記錄就像執行刪除命令,但是這樣做,我會不會導致從NTFS文件的物理刪除...所以我怎麼能刪除物理文件)

檢查點不刪除文件,在後臺進程中刪除文件,它可能需要很長時間。要強制刪除使用

sp_filestream_force_garbage_collection 

編輯:工作與SQL Server 2012只

相關問題