Sql-Server
FILESTREAM 和設置文件路徑的區別
我想我知道這些情況的基本情況。
1)當您將
.MDF
文件內:INSERT INTO normal_table(id ,nome_arquivo,arquivo) SELECT 1,'File_name',bulkcolumn FROM OPENROWSET(BULK N'C:\Users\yeah\Desktop\something.pdf',SINGLE_BLOB) AS ImageSource
2)當你創建一個文件流數據庫時,你將使用一些文件夾,在一些驅動程序中,分配插入的文件,然後我可以將文件夾設置在另一個有更多空間的磁碟中:
use Archive ON PRIMARY ( NAME = Arch1, FILENAME = 'E:\Filestream_patch\archdat1.mdf'), FILEGROUP FileStreamGroup1 CONTAINS FILESTREAM( NAME = Arch3, FILENAME = 'E:\Filestream_patch\filestream1') LOG ON ( NAME = Archlog1, FILENAME = 'E:\Filestream_patch\archlog1.ldf') GO CREATE TABLE [dbo].[FS_Table] ( [Id] [int] IDENTITY(1,1) NOT NULL, [UI] UNIQUEIDENTIFIER ROWGUIDCOL NOT NULL UNIQUE, [FS_Data] [varbinary](max) FILESTREAM NULL ) Use Archive GO INSERT INTO [dbo].[FS_Table] ( UI, FS_Data) VALUES ( NEWID() ,(SELECT * FROM OPENROWSET(BULK N'C:\Users\yeah\Desktop\something.pdf', SINGLE_BLOB) AS Image001) ); GO
但是對於使用類似的東西的開發人員,將 a 設置
path
為文件,然後在 c# 程式碼中使用它呢?CREATE TABLE Example ( id int, file_path varchar(500))
使用這種
path
策略和文件流有什麼區別?我如何評估這種情況,知道什麼對公司更好?
如果您備份託管“範例”表的數據庫,則您備份了字元串
c:\asohdo\ash\file.pdf
(指向您的 pdf 文件),但您沒有備份實際的 PDF 文件。FILESTREAM 數據包含在您的數據庫備份中(除非您明確排除它)。
查看FILESTREAM概述了解更多資訊