SQL Server 2008中的FileStream介紹

字號:


    很多朋友并不知道FileStream 這個功能。因為FileStream 一般在安裝的時候默認是不啟用的,在SQL Server 2008中,引入了Filestream,使用它可以將非機構(gòu)化大型數(shù)據(jù)(如文本文檔、圖像和視頻)等以varbinary(max)的形式存儲在文件系統(tǒng)中。使用數(shù)據(jù)庫的備份還原功能可以將這些數(shù)據(jù)一起備份還原。
    在選擇數(shù)據(jù)庫文件路徑那個窗口,有一個標簽是"FileStream"。如果在安裝的時候你沒有啟用,安裝后可以通過以下設(shè)置來開啟FileStream 功能。
    1. 打開 SQL Server 配置管理器, 在SQL server 服務(wù)下找到你要啟用的SQL Server服務(wù)(默認實例一般是 MSSQLServer),右擊該服務(wù),選擇屬性,在屬性窗口你可以看到FileStream 標簽,選中" 針對 Transact-SQL 訪問啟用 FILESTREAM"
    2.執(zhí)行以下命令在ssms
    代碼如下:
    EXEC sp_configure filestream_access_level, 2
    RECONFIGURE
    3.創(chuàng)建支持FileStream 的數(shù)據(jù)庫
    復(fù)制代碼 代碼如下:[sql]
    CREATE DATABASE test
    ON
    ( NAME = test_dat,
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\testdat.mdf' ),
    FILEGROUP testGroup1 CONTAINS FILESTREAM
    ( NAME = testgroup_dat ,
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\testGroup1.ndf')
    LOG ON
    ( NAME = Sales_log,
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\testlog.ldf' ) ;
    當然你也可以用以下腳本,在已存在的數(shù)據(jù)庫添加一個文件組用于支持FileStream.
    代碼如下:
    [sql]
    ALTER database test
    ADD FILEGROUP FileStreamRecord
    CONTAINS FILESTREAM
    GO
    --Add a file for storing database photos to FILEGROUP
    ALTER database test
    ADD FILE
    (
    NAME= 'FileStreamRecord',
    FILENAME = 'D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\TestFileStreamRecord.ndf'
    )
    TO FILEGROUP FileStreamRecord
    GO
    4. 創(chuàng)建可以存儲FileStream 的數(shù)據(jù)表
    代碼如下:
    CREATE TABLE FileStreamRecording
    [sql]
    (
    ID int,
    RowGuidColumn UNIQUEIDENTIFIER
    NOT NULL UNIQUE ROWGUIDCOL,
    FILESTREAMColumn varbinary(MAX) FILESTREAM
    );
    [sql]
    [sql]
    5.使用
    復(fù)制代碼 代碼如下:[sql]
    INSERT INTO FileStreamRecording VALUES(1, NEWID(), 0x00);
    INSERT INTO FileStreamRecording VALUES(2, NEWID(), 0x00);
    INSERT INTO FileStreamRecording VALUES(3, NEWID(), 0x00);
    GO
    SELECT FILESTREAMColumn.PathName() AS 'PathName' FROM FileStreamRecording;
    具體的使用可參考聯(lián)機幫助或在線幫助。