[鐵人賽][Denali 新特性探險14]FileTables(2)

[鐵人賽][Denali 新特性探險14]FileTables(2)

上一篇我大概介紹了FileTable 功能和特性,這篇我將示範如何設定並建立FileTable。

 

由於FileTable是基於FileStream,所以我們必須先設定FileStream。

1.新增 FileGroup And File For FileStream

alter database db1 add filegroup Myfiles contains filestream
alter database db1 add file(name='db1_files',filename='D:\sqlfs\db1_files') to filegroup myfiles

 

 

image

 

2.確認FileStream是否有啟用

image

 

確認FileStream啟用後並執行以下TSQL

EXEC sp_configure filestream_access_level, 2
RECONFIGURE
到這裡我們已經完成FileStream設定。
Note:filestream_access_level=2 表示 TSQL和Win32 兩者都可存取。
 

3.設定資料庫 FileStream 目錄名稱和非交易存取

alter database db1 set filestream(NON_TRANSACTED_ACCESS = full,DIRECTORY_NAME='db1files')

 

完成FileStream相關設定後,下面我們就可以開始建立FileTable。

建立FileTable

create table filetabletest as filetable
with(filetable_directory='movies',filetable_collate_filename=database_default)

image

建立成功後,在 SSMS中展開 FileTable節點,便可看到剛剛所建立的FileTable。

 

確認FileTable 路徑 和 ,FileStream目錄名稱。

select FileTableRootPath('dbo.filetabletest');

image

FileTable路徑(並非真實路徑)。

 

select DB_NAME ( database_id ),directory_name
from sys.database_filestream_options;
image
FileStream 目錄名稱。
 
瀏覽FileTable目錄。
 
image

檔案真正的存放路徑並非目前所顯示的路徑(真實路徑如下圖)。

 

image

檔案真實存放路徑 D:\sqlfs\db1_files....。

 

確認FileTable Windows檔案系統是否同步

使用檔案總管新增檔案

image

 

使用 TSQL 查詢 FileTable

select stream_id,name,file_type,creation_time,is_directory,
is_readonly,is_archive,is_system
from dbo.filetabletest
image

可以看到剛剛我們使用檔案總管所新增的檔案,表示兩者是有同步的。

 

參考 FileTables