FIX: ROLLBACK of TRUNCATE TABLE May Cause Error 3301, AV (149939)
The information in this article applies to:
This article was previously published under Q149939
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.
Modification Type: | Major | Last Reviewed: | 10/16/2003 |
---|
Keywords: | kbBug kbfix kbProgramming KB149939 |
---|
|