如何从现有表中删除列?

我有一个Fname和Lname的table MEN

我需要删除Lname

怎么做呢?


当前回答

下面是正确答案:

ALTER TABLE MEN DROP COLUMN Lname

但是…如果列上存在约束,则必须先删除约束,然后才能删除列。为了删除一个约束,运行:

ALTER TABLE MEN DROP CONSTRAINT {constraint_name_on_column_Lname}

其他回答

如果您正在使用c#,并且Identity列是int,则创建一个int的新实例,而不向它提供任何值。这对我很管用。

[identity_column] = new int()

泛型:

ALTER TABLE table_name DROP COLUMN column_name;

在你的情况下:

ALTER TABLE MEN DROP COLUMN Lname;
ALTER TABLE MEN DROP COLUMN Lname

在现有表中添加列:

ALTER TABLE table_name
 ADD
 column_name DATATYPE NULL  

删除现有表中的列。

ALTER TABLE table_name
DROP COLUMN column_name

您的示例很简单,不需要任何额外的表更改,但一般来说,这并不是微不足道的。

如果此列被其他表引用,则需要确定如何处理其他表/列。一种选择是删除外键,并在其他表中保留引用数据。

另一种选择是找到所有引用列,如果不再需要,也将它们删除。

在这种情况下,真正的挑战是找到所有外键。您可以通过查询系统表或使用第三方工具,如ApexSQL Search(免费)或Red Gate Dependency tracker(高级但更多功能)来实现这一点。这里有一整个关于外键的线程