您好,登錄后才能下訂單哦!
SQL Server中FileStream的作用是什么,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
一、FileStream配置
1.配置SQL Server安裝實例:Start -> All Programs -> Microsoft SQL Server 2008 R2 -> Configuration Tools -> SQL Server Configuration Manager
右擊屬性,切換到FILESTREAM標簽,勾選如下配置
2. 打開SQL Server,并配置如下
以上也可以通過如下腳本執行:
Exec sp_configure filesteam_access_level, 2RECONFIGURE
最后重啟SQL Server Service
二、實例展示
創建FileStream類型文件/組
--Create filestreamgroup ALTER DATABASE [Archive]ADD FILEGROUP [FileStreamGroup] CONTAINS FILESTREAM GO--Create filestream and association with filestreamgroup aboveALTER DATABASE [Archive]ADD FILE ( NAME = N'FileStream', FILENAME = N'D:\Company\Data\SQL Server\FileStream') TO FILEGROUP [FileStreamGroup]GO
創建測試表(注意:如果表包含FILESTREAM列,則每一行都必須具有唯一的行ID)
--Create tableCREATE TABLE Archive.dbo.Attachment ( [ID] [UNIQUEIDENTIFIER] ROWGUIDCOL NOT NULL PRIMARY KEY, [FileName] NVARCHAR(100) NULL, [CreateUser] NVARCHAR(100) NULL, [CreateDatetime] DATETIME NULL, [Content] VARBINARY(MAX) FILESTREAM NULL )FILESTREAM_ON [FileStreamGroup]
插入一些測試數據
--Insert some recordsINSERT INTO Attachment VALUES (NEWID(),'File Name 1','shg.cpan', GETDATE(),NULL),(NEWID(),'File Name 1','shg.cpan', GETDATE(),CAST('' AS VARBINARY(MAX))),(NEWID(),'File Name 1','shg.cpan', GETDATE(),CAST('This is a attachment, which contains all introduction for filestream' AS VARBINARY(MAX)))
從前臺插入一些數據
using (SqlConnection conn = new SqlConnection("server=10.7.15.172;database=Archive;uid=sa;pwd=1234;Connect Timeout=180")){ conn.Open(); using (SqlCommand cmd = conn.CreateCommand()) { string id = Guid.NewGuid().ToString(); cmd.CommandText = "INSERT INTO Attachment VALUES('" + id + "','File Name 2','shg.cpan','" + DateTime.Now + "',@content)"; SqlParameter param = new SqlParameter("@content", SqlDbType.VarBinary, 1000000000); param.Value = File.ReadAllBytes(@"D:\Folder\131 u_ex151207.log"); cmd.Parameters.Add(param); cmd.ExecuteNonQuery(); } conn.Close();}
檢索數據
SELECT DATALENGTH(CONTENT)/(1024.0 * 1024.0) AS MB,* FROM ATTACHMENT
結果
文件系統
上面的文件都是上傳的真實文件,只不過沒有后綴,如果重命名加上后綴,即可讀取,如最后一個是excel文件,加上.xls,即可用Excel軟件打開此文件
三、注意事項
請注意以下事項:
?并不是所有的文件存儲都適合使用FileStream,如果所存儲的文件對象平均大于1MB考慮使用FileStream,否則對于較小的文件對象,以varbinary(max)BLOB存儲在數據庫中通常會提供更為優異的流性能;?FileStream可以使用在故障集群上(Failover Cluster),但此時FileStream文件組必須位于共享磁盤資源上;?FILESTREAM 與其他 SQL Server 功能的兼容性:https://msdn.microsoft.com/zh-cn/library/bb895334(v=sql.105).aspx
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。