单个Alter Table查询中修改多列

8

有没有一种方法可以在一个 SQL 查询中修改多个列?例如,我想在单个表中更改多个列的列定义,如下所示。我正在使用 SQL Server 2012。

ALTER TABLE [Department]     
ALTER COLUMN [DepartmentName] VARCHAR(200) NULL ,
[ProjectManagerName] VARCHAR(200) NULL ,
[AccountManagerName] VARCHAR(200) NULL 

不,也没有必要这样做。如果您想同时执行所有操作,则只需将所有alter语句放在同一个事务中即可。 - Kahn
2个回答

17

一次性修改多个列 - 不可能。

您可以创建一个临时表,带有您编辑过的列,将数据从源表复制到临时表,删除源表并重命名临时表。


在Oracle中可以这样做:ALTER TABLE table_name ADD (column_1 column_definition, column_2 column_definition, ... column_n column_definition); - Visu

6

一张表不能同时进行多个ALTER列操作。

您需要逐个进行更改,例如:

ALTER TABLE Department ALTER COLUMN [DepartmentName] VARCHAR(200) NULL;
ALTER TABLE Department ALTER COLUMN [ProjectManagerName] VARCHAR(200) NULL;
ALTER TABLE Department ALTER COLUMN [ProjectManagerName] VARCHAR(200) NULL;
ALTER TABLE Department ALTER COLUMN [AccountManagerName] VARCHAR(200) NULL; 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接