.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。