从表中删除列

本主题说明如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 2012 中删除表列。

注意事项注意

删除表中的某一列后,该列及其包含的所有数据都将从数据库中删除。 无法撤消此操作。

本主题内容

  • 开始之前:

    限制和局限

    安全性

  • 使用以下工具从表中删除列:

    SQL Server Management Studio

    Transact-SQL

开始之前

限制和局限

不能删除具有 CHECK 约束的列。 必须首先删除该约束。

不能删除具有 PRIMARY KEY 或 FOREIGN KEY 约束或者其他依赖关系的列,但在使用表设计器时例外。 在使用对象资源管理器或 Transact-SQL 时,必须首先删除该列上的所有依赖关系。

安全性

权限

需要对表的 ALTER 权限。

用于“返回首页”链接的箭头图标[Top]

使用 SQL Server Management Studio

通过使用对象资源管理器删除列

  1. 在**“对象资源管理器”**中,连接到数据库引擎的实例。

  2. 在**“对象资源管理器”中,右键单击要从其删除列的表,然后选择“删除”**。

  3. 在**“删除对象”对话框中,单击“确定”**。

如果该列包含约束或其他依赖关系,则在**“删除对象”**对话框中将显示一条错误消息。 通过删除引用的约束解决该错误。

通过使用表设计器删除列

  1. 在**“对象资源管理器”中,右键单击要从其删除列的表,然后选择“设计”**。

  2. 右键单击要删除的列,然后从快捷菜单上选择**“删除列”**。

  3. 如果该列参与了关系(FOREIGN KEY 或 PRIMARY KEY),则将显示一条消息,提示您确认删除所选列及其关系。 选择**“是”**。

用于“返回首页”链接的箭头图标[Top]

使用 Transact-SQL

删除列

  1. 在**“对象资源管理器”**中,连接到数据库引擎的实例。

  2. 在标准菜单栏上,单击**“新建查询”**。

  3. 将以下示例复制并粘贴到查询窗口中,然后单击**“执行”**。

    USE AdventureWorks2012;
    GO
    ALTER TABLE dbo.doc_exb DROP COLUMN column_b ;
    

如果该列包含约束或其他依赖关系,将返回一条错误消息。 通过删除引用的约束解决该错误。

有关其他示例,请参阅 ALTER TABLE (Transact-SQL)

用于“返回首页”链接的箭头图标[Top]