如何从现有表中删除列?
最佳答案
您要查找的命令是:
alter table tblName drop column columnName
其中 tblName
是表的名称,columnName
是列的名称,但您可能需要首先执行一些操作。
- 如果该列有任何外键引用,您需要先删除它们。
- 如果有索引使用该列,您需要删除它或将其调整为不使用该列。
请记住,此命令的性能不一定很好。一种选择是等待停机时间段,此时您可以确定没有人会访问数据库,重命名当前表,然后使用创建表
并插入...选择
以传输您不想删除的列。
Oracle 的最新版本之一实际上具有软删除功能,它可以将列标记为未使用,而无需物理删除它。它具有相同的效果,因为您无法再引用它,并且有一个类似 alter table ... drop unused columns
的命令,该命令旨在在安静的时间内运行,这会完成艰苦的工作实际上以物理方式将其移除。
这样做的优点是可以立即“消失”列,而不会在繁忙时间降低数据库性能。
关于sql-server - 删除 MS SQL Server 中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/755544/