介绍 Transact-SQL 数据作语言(DML)命令如何使用 FileTable。
FileTable 上的 INSERT作
以下注意事项适用于 FileTable 上的 INSERT 作:
所有文件属性列都具有 NOT NULL 约束。 如果未显式设置值,则会提供适当的默认值。
如果 INSERT 语句设置 名称、 path_locator、 parent_path_locator或文件属性,则强制实施系统定义的约束。
应用程序可以通过将文件系统路径提供给 GetPathLocator(Transact-SQL) 函数来获取文件或目录的 path_locator。
FileTable 上的 UPDATE作
以下注意事项适用于 FileTables 上的 UPDATE 操作:
允许更新任何用户定义的数据。
如果 INSERT 语句设置 名称、 path_locator、 parent_path_locator或文件属性,则强制实施系统定义的约束。
可以对 file_stream 列中的 FILESTREAM 数据进行更新,而不会影响其他任何列,包括时间戳。
FileTable 上的删除操作
以下注意事项适用于文件表上的DELETE操作:
删除行还会从文件系统中删除相应的文件或目录。
如果行对应于包含其他文件或目录的目录,则删除行将失败。
针对 FileTable 上 DML 操作强制执行的约束条件
系统定义的约束可确保 DML作不会损害文件命名空间层次结构的完整性。 强制实施的约束包括:
设置或更改文件或目录 的名称 时:
强制执行 Windows 文件和目录命名约定。
确保父目录中名称的唯一性。
通过设置或更改 path_locator 或 parent_path_locator来设置或更改文件或目录的位置时:
强制实施唯一性。
强制执行目录和文件的分层树的一致性,包括 path_locator 和 parent_path_locator 值的一致性。
当file_stream列不为 null 时,无法将is_directory的值设置为 true。 file_stream列中的数据指示行表示文件而不是目录。
文件属性列不能为 null。 NOT NULL 约束是使用默认值强制执行的。
last_access_time的值不能早于last_write_time和creation_time。
另请参阅
将文件加载到 FileTable 中
在 FileTables 中使用目录和路径
使用文件 Input-Output API 访问 FileTable
FileTable DDL、函数、存储过程和视图