sql-server - 删除 MS SQL Server 中的列

标签 sql-server sql-server-2005

如何从现有表中删除列?

最佳答案

您要查找的命令是:

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/

相关文章:

sql-server - 删除 SQL DB 中的所有对象?

sql-server - 如何在Oracle和SQL Server之间进行兼容的SQL查询?

mysql - 加入子查询,反模式?

sql-server-2005 - 如何从 SSRS 2005 中的 TSQL(列中指定的路径)获取文件大小

sql-server-2005 - 所有用户的成员身份 SHA1 哈希值不相同

sql-server-2005 - [Sql-Server]密码salt和hash值使用什么数据类型,长度是多少?

.net - 面试时如何练习大型SQL Server索引或分区问题?

sql-server - Windows 上的 Django-pyodbc SQL 服务器连接问题

sql - 如何删除 SQL Server 中的多个列

sql-server-2005 - SSRS 2005 报告自动呈现