sql - 如何快速删除包含6亿行的表中的列?

标签 sql sql-server sql-server-2008

我有一个大表,我想在上面运行这个查询:

ALTER TABLE Employee
DROP COLUMN Zipcode

Zipcode 数据类型为 varchar

这种方法不合适,因为它需要很长时间并增加日志空间,并且会持续数小时。任何人都可以指导我一种不会影响数据库性能的独特且更复杂的方法吗?

最佳答案

你真的测试过这个吗?删除列是即时的。你没有问题要解决。


好的,看来您遇到了阻塞问题。你还没有跟进我对此的评论。你应该。

如果正在运行的事务正在使用您要更改的表,则更改必须等待。找出谁在阻止访问该表。运行 sp_who2 并查看 blocked-by 列。

关于sql - 如何快速删除包含6亿行的表中的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23430748/

相关文章:

c# - 建议在 Entity Framework 4 中使用临时表或表变量。更新性能 Entity Framework

sql全文查询表达式,如何知道sql匹配了哪些形式的同义词?

php - 使 sql 子查询停止提示重复列

sql-server - 停止 SQL Server 在 WHERE 子句中评估无用的 UPPER/LOWER?

php - MSSQL_CONNECT 什么都不返回 - 没有错误但也没有响应

sql-server - SQL Server 2008 - 将 XML 声明添加到 XML 输出

sql - 为什么我通过 Start-Job 执行的 SQL 没有返回我期望的答案?

php - SQL Rand() 给出结果集但无法获取结果

python - pyodbc 编程错误

sql - 在 SQL 表中有组合键和主键