使用 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作

以下注意事项适用于 FileTables 上的 UPDATE 操作:

  • 允许更新任何用户定义的数据。

  • 如果 INSERT 语句设置 名称path_locatorparent_path_locator或文件属性,则强制实施系统定义的约束。

  • 可以对 file_stream 列中的 FILESTREAM 数据进行更新,而不会影响其他任何列,包括时间戳。

FileTable 上的删除操作

以下注意事项适用于文件表上的DELETE操作:

  • 删除行还会从文件系统中删除相应的文件或目录。

  • 如果行对应于包含其他文件或目录的目录,则删除行将失败。

针对 FileTable 上 DML 操作强制执行的约束条件

系统定义的约束可确保 DML作不会损害文件命名空间层次结构的完整性。 强制实施的约束包括:

  • 设置或更改文件或目录 的名称 时:

    • 强制执行 Windows 文件和目录命名约定。

    • 确保父目录中名称的唯一性。

  • 通过设置或更改 path_locatorparent_path_locator来设置或更改文件或目录的位置时:

    • 强制实施唯一性。

    • 强制执行目录和文件的分层树的一致性,包括 path_locatorparent_path_locator 值的一致性。

  • 当file_stream列不为 null 时,无法将is_directory的值设置为 truefile_stream列中的数据指示行表示文件而不是目录。

  • 文件属性列不能为 null。 NOT NULL 约束是使用默认值强制执行的。

  • last_access_time的值不能早于last_write_timecreation_time

另请参阅

将文件加载到 FileTable 中
在 FileTables 中使用目录和路径
使用文件 Input-Output API 访问 FileTable
FileTable DDL、函数、存储过程和视图