This article was previously published under Q199122
This article has been archived. It is offered "as is" and will no longer be updated.
BUG #: 18545 (SQLBUG_65)
INSERT...EXEC rpc can generate error 3307 when moving data directly into a table having a constraint and the constraint check is violated.
This can lead to syslocks retaining a spid -1 lock on the inserted table and consequently blocking other processes accessing the table. Closing the importing process (for example, ISQL/W) has no effect on releasing the spid -1 lock. A repeat execution of the INSERT...EXEC rpc on the connection that received the 3307 error hangs the connection.
This problem is seen with SQL Server 6.5 Service Pack 5, and has not been observed with any previous Service Pack.
To correct the spid -1 lock state, the SQL Server will need to be stopped and restarted.
Use the following to prevent further occurrences/>
Remove the Constraints on the destination table.
Make sure that Referential Integrity will not be violated before inserting.
Use INSERT...EXEC into a table without Declarative Referential Integrity (DRI) specified and then use INSERT...SELECT to move the data into the final table.
Apply the hotfix.
Move to SQL Server 7.0.
Rollback to an earlier Service Pack for SQL Server 6.5.
Microsoft has confirmed this to be a problem in SQL Server version 6.5. This problem has been corrected in the Post Service Pack 5a Update for Microsoft SQL Server version 6.5. To install the Post Service Pack 5a Update, you must have either SQL Server 6.5 SP5 or SP5a installed.
For information about how to download and install the SQL Server 6.5 Service Pack 5a, refer to the following article in the Microsoft Knowledge Base:
197177 INF: How to Obtain SQL Server 6.5 Service Pack 5a
If you already have SQL Server 6.5 SP5 or SP5a installed, you can download the Post SP5a Update from the following article in the Microsoft Knowledge Base:
274036 INF: How to Obtain SQL Server 6.5 Post Service Pack 5a Update
For more information, contact your primary support provider.