如何从现有表中删除列?
我有一个Fname和Lname的table MEN
我需要删除Lname
怎么做呢?
如何从现有表中删除列?
我有一个Fname和Lname的table MEN
我需要删除Lname
怎么做呢?
当前回答
语法:
ALTER TABLE TABLE_NAME DROP COLUMN COLUMN_NAME;
例如:
alter table Employee drop column address;
其他回答
语法:
ALTER TABLE TABLE_NAME DROP COLUMN COLUMN_NAME;
例如:
alter table Employee drop column address;
您的示例很简单,不需要任何额外的表更改,但一般来说,这并不是微不足道的。
如果此列被其他表引用,则需要确定如何处理其他表/列。一种选择是删除外键,并在其他表中保留引用数据。
另一种选择是找到所有引用列,如果不再需要,也将它们删除。
在这种情况下,真正的挑战是找到所有外键。您可以通过查询系统表或使用第三方工具,如ApexSQL Search(免费)或Red Gate Dependency tracker(高级但更多功能)来实现这一点。这里有一整个关于外键的线程
ALTER TABLE MEN DROP COLUMN Lname
这也可以通过SSMS GUI来完成。这个方法的好处是它会警告你是否该列上有任何关系,也可以自动删除这些关系。
将表格放入设计视图(右键单击表格),如下所示:
右键单击表的Design视图中的列,然后单击“Delete” 列”
如前所述,如果有任何关系也需要删除,此时它将询问您是否也想删除这些关系。您可能需要这样做来删除列。
如果您正在使用c#,并且Identity列是int,则创建一个int的新实例,而不向它提供任何值。这对我很管用。
[identity_column] = new int()