.alter table 命令

适用于:✅Azure 数据资源管理器

.alter table 命令:

  • 保护“已保留”列中的数据
  • 对表列重新排序
  • 对现有表设置新列架构 docstring 和文件夹,并覆盖现有列架构 docstring 和文件夹
  • 必须在指定表名范围的特定数据库的上下文中运行

警告

.alter 命令使用不当可能会导致数据丢失。

权限

你必须至少具有表管理员权限才能运行此命令。

语法

.alter table tableName (columnName:columnType [, ...]) [with (propertyName = propertyValue [, ...])]

详细了解语法约定

参数

客户 类型​​ 必需 说明
tableName string ✔️ 要更改的表的名称。
columnName, columnType string ✔️ 映射到该列中数据类型的现有列或新列的名称。 这些映射的列表定义了输出列架构。
propertyName, propertyValue string 键值属性对的逗号分隔列表。 请参阅支持的属性

警告

命令中未指定的现有列将被删除。 这可能会导致意外的数据丢失。

提示

更改之前,请使用 .show table [tableName] cslschema 获取现有表架构。

支持的属性

名称 Type 描述
docstring string 描述要添加的实体的自由文本。 此字符串显示在实体名称旁边的各种 UX 设置中。
folder string 要添加到表的文件夹的名称。

此命令如何影响数据

  • 不会修改命令中列出的列中的现有数据
  • 将删除命令中未列出的列中的现有数据
  • 新列将添加到架构的末尾
  • 新列中的数据将假定为 null
  • 该表将按照指定的顺序包含相同的列

注意

如果尝试更改列类型,该命令将失败。 请改用 .alter column

警告

  • 忽略列顺序并与 .alter table 并行发生的数据引入可能会将数据引入到错误的列中。 为了防止这种情况,请确保引入使用映射对象,或在运行 .alter table 命令时停止引入。
  • 数据引入可能会修改表的列架构。 注意不要意外删除引入期间添加的所需列。

示例

.alter table MyTable (ColumnX:string, ColumnY:int) 
.alter table MyTable (ColumnX:string, ColumnY:int) with (docstring = "Some documentation", folder = "Folder1")

如果要保留表设置,并且仅替代或展开某些列,请使用 .alter-merge。 有关详细信息,请参阅 .alter-merge table