我想从数据库表中删除数百万条记录。 我使用了一个WHILE循环,以便在每次迭代中删除TOP 25000行并提交它们。 我的假设是,如果我删除部分行并在每次迭代中提交,我会阻止事务日志长大。 我做类似下面: WHILE (1=1)
BEGIN
-- Logic to BREAK the loop like if no rows left to delete
IF ...
BEGIN
我已阅读,在SQL中删除和截断表之间的区别之一是截断操作不能回滚没有触发器将被解雇(as written in this site for example): 问题: 这是否意味着当我包含数百万条记录的TRUNCATE TABLE时,我不应该影响事务日志文件 - 即事务日志文件不应该在截断时长大 - 我是否正确?