當前位置:成語大全網 - 書法字典 - 如何使用sql server 2012文件表

如何使用sql server 2012文件表

首先,啟用文件表

1.修改數據庫引擎的屬性。

打開SQL Server配置管理器並修改SQL Server數據庫引擎的屬性。使用此頁面為此Microsoft SQL Server 2012安裝啟用FILESTREAM。

(1)為Transact-SQL訪問啟用FILESTREAM

選擇此項可為Transact-SQL訪問啟用FILESTREAM。必須選擇此控制選項才能使用其他控制選項。如果未啟用此選項,則不能添加FileStream文件組。

(2)為文件I/O流訪問啟用文件流。

選擇為FILESTREAM啟用Win32流訪問。

(3)Windows * * *享有盛名。

使用此控制選項輸入將用於存儲FILESTREAM數據的Windows ***共享的名稱。默認值是SQL Server實例的名稱。

(4)允許遠程客戶端啟用對文件流數據的流訪問。

選擇此控制選項以允許遠程客戶端訪問此服務器上的FILESTREAM數據。

2.修改服務器的屬性。

打開SQL Server Management Studio並修改此實例的配置。默認配置如下:

上述選項解釋如下:

(1)FILESTREAM訪問級別顯示SQL Server實例上受支持的FILESTREAM的當前級別。要更改訪問級別,請選擇以下值之壹:

已禁用。

無法在文件系統中存儲二進制大對象(BLOB)數據。這是默認值。也就是說,文件流訪問級別=0

Transact-SQL訪問已啟用

您可以使用Transact-SQL訪問FILESTREAM數據,但不能通過文件系統訪問。即文件流訪問級別=1。

啟用完全訪問。

可以使用Transact-SQL並通過文件系統訪問FILESTREAM數據。也就是說,文件流訪問級別=0

註意:首次啟用FILESTREAM時,您可能需要重新啟動計算機來配置驅動程序。

(2)“FILESTREAM *** Enjoy Name”顯示安裝期間選擇的FILESTREAM * * *的只讀名稱。

在本實驗中,我們將“文件流訪問級別”設置為:啟用完全訪問。

如果它是通過T-SQL腳本執行的,請運行以下腳本:

EXEC sys . sp _ configure N‘filestream訪問級別‘,N‘2‘

用覆蓋重新配置

註意:安裝完成後,請重新啟動實例。

3.配置防火墻

若要在受防火墻保護的環境中使用FILESTREAM,客戶端和服務器都必須能夠將DNS名稱解析為包含FILESTREAM文件的服務器。FILESTREAM要求打開Windows文件* * *共享端口139和445。

第二,配置文件組

1,添加文件組

完成上述操作後,您可以向數據庫添加FileStream專用的文件組。

如果您通過腳本進行操作,請運行以下腳本:

ALTER DATABASE【db 01】添加文件組【FileStreamFileGroup】包含文件流

2.添加文件

完成上述操作後,您可以向數據庫添加FilStream類型的數據庫文件。

在本例中,系統沒有為“FileStream data”文件類型創建mdf或ndf文件,而是在文件夾C:\SqlData下自動創建了壹個具有邏輯名稱的文件夾,即C:\SqlData\FileData。其中FILESTREAM.hdr文件是FILESTREAM容器的頭文件。刪除此數據庫後,mdf、ndf、日誌和此文件夾都將被刪除。

如果您通過腳本進行操作,請運行以下腳本:

ALTER DATABASE【db 01】將文件(NAME = N‘FileData,FILENAME = N‘c:\ SqlData \ FileData‘)添加到文件組【FileStreamFileGroup】中

註意:在上面的示例中,在運行腳本之前,C:\SqlData必須存在。建議使用右側的選擇按鈕來選擇路徑。如果路徑不存在,將會報告錯誤:

同時,不能存在重復的文件夾,即C:\SqlData\FileData不能存在。否則,它還會報告壹個錯誤:

3.啟動非事務性訪問

FileTable使Windows應用程序能夠在沒有SQL Server事務的情況下獲取FILESTREAM數據的Windows文件句柄。為了允許對存儲在SQL Server中的文件進行這種非事務性訪問,您必須在數據庫級別為將包含FileTable的每個數據庫指定所需的非事務性訪問級別。

選項解釋如下:

(1)對文件流的非事務性訪問

為從文件系統對存儲在FileTables中的FILESTREAM數據的非事務性訪問指定以下選項之壹:OFF、READ_ONLY或FULL。

如果服務器上未啟用FILESTREAM,該值將被設置為OFF並被禁用。在本實驗中,將其設置為滿。

②文件流目錄名

為與所選數據庫關聯的FILESTREAM數據指定目錄名。在FileTable文件夾層次結構中,此數據庫級目錄將成為在實例級為FILESTREAM指定的* * *共享名稱的子目錄,以及在數據庫中創建的FileTable的父目錄。

如果在啟用非事務性訪問時未提供目錄名,則必須稍後提供目錄名,以便在數據庫中創建文件表。

如果由腳本執行,如下所示:

更改數據庫db01

設置文件流(NON _ TRANSACTED _ ACCESS = FULL,DIRECTORY _ NAME = N‘image files‘)

註意:更改現有數據庫時,請使用DIRECTORY_NAME FILESTREAM選項調用ALTER DATABASE(Transact-SQL)語句。使用這些選項更改目錄名時,數據庫必須以獨占方式鎖定,並且沒有打開的文件句柄。

描述:要檢查數據庫上是否啟用了非事務性訪問,可以查詢目錄視圖。腳本如下所示:

SELECT數據庫名稱(數據庫標識),非事務處理訪問,非事務處理訪問desc

FROM sys . database _ filestream _ options

第三,創建壹個文件表

1.創建第壹個文件表。

“SQL Server Management Studio”僅提供腳本模板,您仍需要使用腳本來創建文件表:

使用db01

將表ImageTable1創建為文件表

官方模板是:

使用【db01】

創建表【dbo】。【imagetable 1】AS file table ON【PRIMARY】FILESTREAM _ ON【FILESTREAM file group】

隨著

(file table _ DIRECTORY = N‘image table 1‘,file table _ COLLATE _ FILENAME = Chinese _ PRC _ CI _ AS)

2.創建第二個FileTable。

將表格ImageTable2創建為文件表格

3、讓* * *享受這條道路

文件表創建後,會相應地生成壹個文件表* * *共享目錄,目錄路徑可以通過內置函數獲取:

選擇文件表根路徑(‘image table 1‘)

此實驗返回的結果是:\ \ SQL 1 \ SQL file \ image files \ image table 1。

4.視角

通過Windows資源管理器,您可以看到已經創建了壹個名為GUID的文件夾。

通過SQL Server Management Studio查看表的結構。

第四,操作

1.將文件添加到文件夾

添加文件A01。通過Windows資源管理器將GIF文件復制到文件夾\ \ SQL 1 \ SQL file \ image files \ image table 1。然後運行腳本:

select * from ImageTable1

結果如下:

可以看到SQL Server自動向表中添加了記錄。

2.重命名文件

運行以下腳本:

更新image table 1 set name =‘Cup。其中name =‘a 01。GIF

通過Windows資源管理器查看文件夾\ \ SQL 1 \ SQL file \ image files \ image table 1,我們可以看到文件A01。GIF已更名為Cup.GIF。

3.查看* * * Enjoy文件夾

我們可以繼續復制其他文件,然後通過Windows資源管理器查看文件夾。

4.刪除文件

您可以使用腳本來刪除,例如:

刪除ImageTable1,其中name =‘Cup。GIF

或者,直接通過Windows資源管理器刪除該文件。

動詞 (verb的縮寫)備份和恢復

1備份數據庫

使用SQL Server備份數據庫時,文件流數據將與數據庫中的結構化數據壹起備份。

2.部分備份

如果不想將文件流數據與關系數據壹起備份,可以使用部分備份來排除文件流文件組。

不及物動詞相關解釋

有關詳細信息,請參見/library/gg492086.aspx。

1、永遠在線

當包含FILESTREAM或FileTable數據的數據庫屬於AlwaysOn可用性組時:

FILESTREAM和FileTable函數接受或返回虛擬網絡名(VNN),而不是計算機名。有關這些函數的詳細信息,請參閱Filestream和FileTable函數(Transact-SQL)。

通過文件系統API對FILESTREAM或FileTable數據的所有訪問都應使用VNN而不是計算機名。

2.表分區

FileTable不支持分區。通過支持多個文件流文件組,在大多數方案中無需使用分區即可解決單純向上擴展的問題(與SQL 2008文件流不同)。

3.復制

FileTable不支持復制和相關功能,包括事務復制、合並復制、變更數據捕獲和變更跟蹤。

4.視角

您可以像創建任何其他表壹樣為FileTable創建視圖。但是,為FileTable創建的視圖有以下註意事項:

視圖沒有任何FileTable語義,也就是說,視圖中的列(包括“File Attribute”列)的行為類似於沒有任何特殊語義的常規視圖列,即使對於表示文件/目錄的行也是如此。

您可以基於可更新的視圖語義更新視圖,但是基礎表約束可能會拒絕更新,就像在表中壹樣。

通過將文件作為顯式列添加到視圖中,可以在視圖中顯示文件的路徑。例如:

將視圖MP3文件創建為SELECT列1,列2,GetFileNamespacePath()作為路徑,列3,…來自文檔