PRB: SELECT INTO Fails Inside a User-Defined Transaction (67874)



The information in this article applies to:

  • Microsoft SQL Server 4.2x

This article was previously published under Q67874

SYMPTOMS

The following message is received when a SELECT INTO is used inside a user-defined transaction:

SELECT INTO command not allowed within multi-statement transaction.

CAUSE

The SELECT INTO command is a nonlogged operation and is not allowed inside a user-defined transaction (BEGIN TRAN ... COMMIT TRAN).

WORKAROUND

If it is necessary to associate a table created with a SELECT INTO to a transaction, you can use the following method:
  1. Create the table outside the user-defined transaction.
  2. If the transaction fails, set the global variable @@error and roll back the transaction.
  3. Outside the transaction, check for the value of @@error and drop the table if this value is set.

Modification Type:MinorLast Reviewed:2/14/2005
Keywords:kbProgramming KB67874