sql - SQL Server 中表的多行删除

标签 sql sql-server

如何从 SQL Server 2000 中删除 150 万行,以及完成此任务需要多长时间。

我不想删除表中的所有记录...我只想删除满足 WHERE 条件的所有记录。

从评论编辑为下面的答案。

“我触发相同的查询,即使用Where子句从table_name中删除...是否可以在正在运行的查询中禁用索引,因为查询在过去20小时内一直在进行..还请帮助我了解如何禁用索引..”

最佳答案

如果(且仅当)您想要删除表中的所有记录,您可以使用 DROP TABLE 或 TRUNCATE TABLE。

DELETE 一次删除一条记录,并在事务日志中为每个删除的行记录一个条目。 TRUNCATE TABLE 速度要快得多,因为它不在事务日志中记录事件。它从表中删除所有行,但表结构及其列、约束、索引等仍然保留。 DROP TABLE 会删除这些。

如果您决定截断,请务必小心。这是不可逆转的(除非您有备份)。

关于sql - SQL Server 中表的多行删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/478327/

相关文章:

sql-server - 序列作为列的默认值

sql - 是否有一个选择性子句可以直接在 PostgreSQL 中注入(inject)选择性,类似于 IBM DB2

sql - 基于用户定义的类型创建 SQL Server 表

sql-server - 如何优雅地写一个 SQL ORDER BY(在内联查询中无效),但聚合 GROUP BY 需要?

sql-server - 创建索引时如何选择列?

sql - 从所有行的表字段中查找唯一字符

mysql - 确定分组后如何选择记录。 ( rails 3.0)

SQL服务器: indexed view containing greatest row per group

sql - 我如何在 PostgreSQL 的 A.slug 和 B.path 上连接两个表 A 和 B?

mysql - 如何找到两列的Loan-to_Value比率?