首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> SQL Server 2008

SQL Server 2008 FileStream 功能啟用與使用完整教學

     編輯:SQL Server 2008

什麼是 FileStream?

FileStream 是 SQL Server 2008 引入的功能,允許將非結構化大型資料 (文件、圖片、影片等) 以 varbinary(max) 形式儲存於檔案系統,同時享有資料庫的交易一致性、備份還原整合等優勢。安裝時預設未啟用,需手動開啟。

啟用 FileStream 步驟

1. 透過 SQL Server 組態管理員啟用

  1. 開啟 SQL Server 組態管理員。
  2. 在 SQL Server 服務 下找到目標執行個體 (預設為 MSSQLSERVER),右鍵選 屬性。
  3. 切換至 FILESTREAM 索引標籤,勾選 啟用 FILESTREAM 以進行 Transact-SQL 存取。
  4. 視需求勾選「啟用 FILESTREAM 以進行檔案 I/O 存取」與「允許遠端用戶端存取 FILESTREAM 資料」。
  5. 確定並重新啟動 SQL Server 服務。

2. T-SQL 設定存取層級

EXEC sp_configure filestream_access_level, 2;
RECONFIGURE;

filestream_access_level 值說明:0=停用、1=僅 T-SQL、2=完整啟用 (含檔案系統存取)。

建立支援 FileStream 的資料庫

CREATE DATABASE FileStreamDB
ON
PRIMARY ( NAME = FSDB_data, FILENAME = 'C:\Data\FSDB_data.mdf' ),
FILEGROUP FSDB_FSGroup CONTAINS FILESTREAM
( NAME = FSDB_FSData, FILENAME = 'C:\Data\FSDB_FSGroup' )
LOG ON ( NAME = FSDB_log, FILENAME = 'C:\Log\FSDB_log.ldf' );

注意:FILENAME 指向的是資料夾路徑,而非檔案,SQL Server 會在該資料夾建立 FileStream 容器。

在現有資料庫新增 FileStream 檔案群組

ALTER DATABASE FileStreamDB
ADD FILEGROUP FSGroup2 CONTAINS FILESTREAM;
GO
ALTER DATABASE FileStreamDB
ADD FILE ( NAME = 'FSGroup2_Data', FILENAME = 'D:\Data\FSGroup2' )
TO FILEGROUP FSGroup2;
GO

建立 FileStream 資料表

CREATE TABLE DocumentStore
(
    DocID INT PRIMARY KEY,
    RowGuid UNIQUEIDENTIFIER NOT NULL ROWGUIDCOL UNIQUE DEFAULT NEWID(),
    FileContent VARBINARY(MAX) FILESTREAM NULL
);

關鍵點:

  • 必須包含 ROWGUIDCOL 的 UNIQUEIDENTIFIER 資料行。
  • FileStream 資料行宣告為 VARBINARY(MAX) FILESTREAM。

基本操作範例

-- 插入空檔案佔位
INSERT INTO DocumentStore (DocID, FileContent) VALUES (1, 0x00);
INSERT INTO DocumentStore (DocID, FileContent) VALUES (2, 0x00);
INSERT INTO DocumentStore (DocID, FileContent) VALUES (3, 0x00);

-- 取得檔案系統路徑 (供應用程式直接讀寫)
SELECT FileContent.PathName() AS FilePath FROM DocumentStore;

應用場景建議

  • 文件管理系統 (合約、報表、圖片)
  • 多媒體資料儲存 (影片、音訊)
  • 需透過 Win32 API 高效讀寫的大型二進位資料

FileStream 結合了資料庫管理優勢與檔案系統效能,是處理大型非結構化資料的理想選擇。詳細用法請參考線上叢書 FILESTREAM (Transact-SQL) 章節。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved