删除MS SQL Server中的列

如何删除现有表格中的列?

你正在寻找的命令是:

alter table tblName drop column columnName 

其中tblName是表的名称, columnName是列的名称,但有一些事情可能需要先做。

  • 如果有任何外键引用的列,你需要先摆脱它们。
  • 如果有索引使用该列,则需要删除该列或将其调整为不使用该列。

请记住,这个命令的执行可能不一定是好的。 一种select是等待一个停顿时间,当你可以确定没有人会访问数据库,重命名当前表,然后使用create tableinsert into ... select from从而转移你不需要的列想要删除。

其中一个较晚版本的Oracle实际上有一个软删除,可以将一个列标记为未使用而不需要物理删除。 它具有相同的效果,因为你不能再引用它,并且沿着alter table ... drop unused columns的命令有一个命令alter table ... drop unused columns ,这意味着要在安静的时间运行,这实际上是在实际上将其删除。

这具有立即“消失”列的优点,而不会在繁忙时间拖拽数据库性能。

ALTER TABLE XXX DROP COLUMN YYY;

对于大型表格,这可能非常缓慢。 创build一个新的表格,旧的表格的副本,但是更改并插入数据通常要快得多。 删除旧表,然后重命名新表。

这也可以通过SSMS GUI完成。

我喜欢这种方法,因为它会警告你,如果这个列上有任何关系,也可以自动删除这些。 正如PaxDiablo所说,如果有关系,他们必须先被删除。

  1. 在devise视图中放置表格(右键单击表格),如下所示:

在这里输入图像说明

  1. 右键单击表格“devise”视图中的列,然后单击“删除列”

在这里输入图像说明

此时,如果还有需要删除的关系,它会询问您是否要删除这些关系。