共用方式為


使用 Transact-SQL 存取 FileTable

描述 Transact-SQL 資料操作語言(DML)命令如何與 FileTable 一起運作。

在 FileTable 上執行的 INSERT 作業

下列考慮適用於 FileTable 上的 INSERT 作業:

  • 所有檔案屬性欄位都有 NOT NULL 條件約束。 如果未明確設定值,則會提供適當的預設值。

  • 如果 INSERT 語句設定 名稱path_locatorparent_path_locator或檔案屬性,則會強制執行系統定義的條件約束。

  • 應用程式可以提供 GetPathLocator (Transact-SQL) 函式的檔案系統路徑,以取得檔案或目錄的path_locator

FileTable 上的 UPDATE 作業

下列考慮適用於 FileTable 上的 UPDATE 作業:

  • 允許更新任何使用者定義的數據。

  • 如果 INSERT 語句設定 名稱path_locatorparent_path_locator或檔案屬性,則會強制執行系統定義的條件約束。

  • 您可以更新 file_stream 數據行中的 FILESTREAM 數據,而不會影響任何其他數據行,包括時間戳。

FileTable 上的 DELETE 作業

下列考慮適用於 FileTable 上的 DELETE 作業:

  • 刪除資料列也會從文件系統中移除對應的檔案或目錄。

  • 如果數據列對應至包含其他檔案或目錄的目錄,刪除數據列就會失敗。

在 FileTable 上對 DML 作業所施加的條件約束

系統定義的條件約束可確保 DML 動作不會危害檔案命名空間階層的完整性。 強制執行的條件約束包括下列各項:

  • 當您設定或變更檔案或目錄 的名稱 時:

    • 會強制執行 Windows 檔案和目錄命名慣例。

    • 父目錄中名稱的唯一性會被強制要求。

  • 當您設定或變更檔案或目錄的位置時,請設定或變更 path_locatorparent_path_locator

    • 確保其獨特性。

    • 會確保目錄和檔案階層樹狀結構的一致性,包括path_locatorparent_path_locator值的一致性。

  • is_directory 的值不能設定為 true,當 file_stream 數據行不是 null 時。 file_stream數據行中的數據表示數據列代表檔案,而不是目錄。

  • 檔案屬性數據行不可為 Null。 NOT NULL 條件約束會使用預設值強制執行。

  • last_access_time 的值不能早於 last_write_timecreation_time

另請參閱

載入檔案至 FileTable
在 FileTable 中處理資料夾與路徑
使用檔案輸入輸出 API 存取 FileTable
FileTable DDL、函數、預存程序及檢視