Share via


FileTable (SQL Server)

FileTable 功能提供 Windows 檔案命名空間與 Windows 應用程式相容性,在 SQL Server 中儲存檔案資料的支援。 FileTable 可讓應用程式整合其儲存和資料管理元件,並且透過非結構化資料和中繼資料提供整合式 SQL Server 服務 (包含全文檢索搜尋與語意搜尋)。

亦即您可以在 SQL Server 名為 FileTable 的特殊資料表中,儲存檔案和文件,但如同儲存在檔案系統般,您可以從 Windows 應用程式存取檔案和文件,而不必變更用戶端應用程式。

FileTable 功能以 SQL Server FILESTREAM 技術為基礎組建。 若要深入瞭解FILESTREAM,請參閱 FILESTREAM (SQL Server)

FileTable 功能的優點

FileTable 功能的目標包括:

  • SQL Server 資料庫中儲存的檔案資料 Windows API 相容性。 Windows API 相容性包括下列項目:

    • FILESTREAM 資料的非交易式資料流存取和就地更新。

    • 目錄和檔案的階層式命名空間。

    • 檔案屬性的儲存,例如建立日期和修改日期。

    • Windows 檔案和目錄管理 API 的支援。

  • 其他 SQL Server 功能,包括 FILESTREAM 和檔案屬性資料的管理工具、服務和關聯查詢功能的相容性。

所以 FileTable 移除重大的障礙,讓您可使用 SQL Server 儲存並管理檔案伺服器上目前歸屬為檔案的非結構化資料。 企業可將此資料從檔案伺服器移至 FileTable,利用 SQL Server 提供的整合式管理與服務。 同時,企業可以針對將這項資料視為檔案系統中之檔案的現有 Windows 應用程式,維持 Windows 應用程式相容性。

何謂 FileTable

應用程式需要在資料庫儲存包含 Windows API 相容性和非交易式存取的檔案與目錄時,SQL Server 提供特殊的檔案資料表 (也稱為 FileTable)。 FileTable 是包含預先定義結構描述的特殊化使用者資料表,可儲存 FILESTREAM 資料、檔案和目錄階層資訊,以及檔案屬性。

FileTable 提供了下列功能:

  • FileTable 代表目錄和檔案的階層。 它會儲存與該階層中所有節點相關的資料 (目錄以及它們所包含的檔案)。 這個階層是從您建立 FileTable 時指定的根目錄開始。

  • FileTable 中的每個資料列都代表一個檔案或目錄。

  • 每個資料列都包含下列項目。 如需 FileTable 結構描述的詳細資訊,請參閱 FileTable 結構描述

    • 資料流資料的file_stream 資料行和 stream_id (GUID) 識別碼 (目錄的 file_stream 資料行為 NULL)。

    • 用於代表和維護檔案與目錄階層的 path_locatorparent_path_locator 資料行。

    • 檔案 I/O API 可用的 10 個檔案屬性,例如建立日期和修改日期。

    • 支援針對檔案和文件進行全文檢索搜尋和語意搜尋的類型資料行。

  • FileTable 會強制執行特定系統定義的條件約束和觸發程序來維護檔案命名空間語意。

  • 針對非交易式存取設定資料庫後,針對 SQL Server 執行個體設定的 FILESTREAM 共用下會公開 FileTable 中代表的檔案和目錄階層。 這會提供 Windows 應用程式的檔案系統存取。

FileTable 的某些其他特性包括:

  • 儲存在 FileTable 中的檔案和目錄資料會透過 Windows API 架構應用程式之非交易式檔案存取的 Windows 共用公開。 針對 Windows 應用程式,這看起來就像含有其檔案和目錄的一般共用。 應用程式可以使用一組豐富的 Windows API,來管理此共用下的檔案和目錄。

  • 透過此共用顯示的目錄階層就是在 FileTable 內部維護的單純邏輯目錄結構。

  • SQL Server 元件會攔截 Windows 共用呼叫建立或變更檔案或目錄,然後反映至 FileTable 中對應的關聯資料。

  • Windows API 作業的本質為非交易式,而且並未與使用者交易相關聯。 不過,系統完全支援儲存在 FileTable 中之 FILESTREAM 資料的交易式存取,就如同一般資料表中的任何 FILESTREAM 資料行。

  • FileTable 也可以透過一般 Transact-SQL 存取來查詢和更新。 這些功能也整合了 SQL Server 管理工具,及備份等功能。

使用 FileTable 的額外考量

管理考量

關於 FILESTREAM 和 FileTable

  • 您可以分別設定 FileTable 與 FILESTREAM。 因此,您可以繼續使用 FILESTREAM 功能,而不需要啟用非交易式存取或建立 FileTable。

  • 除了透過 FileTable 以外,沒有 FILESTREAM 資料的非交易式存取。 因此,當您啟用非交易式存取時,並不會影響現有 FILESTREAM 資料行和應用程式的行為。

關於 FileTable 和非交易式存取

  • 您可以在資料庫層級中啟用或停用非交易式存取。

  • 您可以在資料庫層級中設定或微調非交易式存取,方法是關閉它,或是啟用唯讀或完整讀取/寫入存取。

FileTable 不支援記憶體對應檔案

FileTable 不支援記憶體對應檔案。 記事本和小畫家是使用記憶體對應檔案的兩個常見的應用程式例子。 您無法在 SQL Server 同個電腦上,使用這些應用程式開啟 FileTable 中儲存的檔案。 但是,可以從遠端電腦使用這些應用程式來開啟儲存在 FileTable 中的檔案,因為在這些情況下不使用記憶體對應功能。

相關工作

啟用 FileTable 的必要條件
描述如何啟用建立和使用 FileTable 的必要元件。

建立、改變及卸除 FileTable
描述如何建立新的 FileTable,或是改變或卸除現有的 FileTable。

載入檔案至 FileTable
描述如何載入或移轉檔案至 FileTable 中。

使用 FileTable 中的目錄與路徑
描述在 FileTable 中儲存檔案的目錄結構。

利用 Transact-SQL 存取 FileTable
描述 Transact-SQL 資料操作語言 (DML) 命令如何與 FileTable 搭配運作。

使用檔案輸入輸出 API 存取 FileTable
描述檔案系統 I/O 如何在 FileTable 上運作。

管理 FileTable
描述用於管理 FileTable 的常見管理工作。

相關內容

FileTable 結構描述
描述 FileTable 預先定義且固定的結構描述。

FileTable 與其他 SQL Server 功能的相容性
描述 FileTable 如何搭配其他的 SQL Server 功能一起運作。

FileTable DDL、函數、預存程序及檢視
列出已新增或變更以支援 FileTable 功能的 Transact-SQL 語句和SQL Server資料庫物件。