FIX: ROLLBACK of TRUNCATE TABLE May Cause Error 3301, AV

ID: Q149939


The information in this article applies to:

BUG#: 14849 (6.50)

SYMPTOMS

A TRUNCATE TABLE command that is aborted or rolled back may get a 3301 error "Invalid log record found in Syslogs (logop 42)" and an access violation.


CAUSE

If the truncated table has an IDENTITY column and the TRUNCATE aborts, or is inside a user transaction which later does a ROLLBACK, this problem can occur.


WORKAROUND

If the purpose of the TRUNCATE TABLE is just to remove all the rows, use DELETE with no WHERE clause. If the purpose is also to reset the IDENTITY value, use DELETE with no WHERE clause then TRUNCATE TABLE, and make sure there is no user defined transaction at the time of the TRUNCATE TABLE via logic such as


delete t1
while @@trancount > 0
begin
   commit tran
end
truncate table t1 


STATUS

Microsoft has confirmed this to be a problem in Microsoft SQL Server version 6.5. This problem has been corrected in U.S. Service Pack 1 for Microsoft SQL Server version 6.5. For more information, contact your primary support provider.

Additional query words: sql65 truncate av 3301 syslogs


Keywords          : kbprg SSrvProg kbbug6.50 kbfix6.50.sp1 
Version           : 6.5
Platform          : WINDOWS 
Issue type        : 

Last Reviewed: March 26, 1999