最後のステップでテーブルを削除する必要があるかどうかを判断できるように、いくつかのアクションをトランザクションにラップしようとしています。これが私がこれまでに持っているものです:
    --select the DB
    use DB1
    --if the table exists, we want to delete it first
    IF (EXISTS (SELECT * 
                     FROM INFORMATION_SCHEMA.TABLES 
                     WHERE TABLE_SCHEMA = 'dbo' 
                     AND  TABLE_NAME = 'VV'))
    BEGIN
        drop table dbo.VV
    END
BEGIN TRAN  
    SELECT field1
          ,field2
          ,field3
    INTO dbo.vv
      FROM vvr A
     WHERE A.field1 <> 'GEN'
     AND A.field2 <> 'NO DATA'
     AND A.field3 <> '(BLANK) NO'
PRINT 'ROW1:' +  CAST(@@ROWCOUNT as varchar(11))
IF @@ROWCOUNT = 0 
        ROLLBACK TRAN 
    ELSE
        COMMIT TRAN
    UPDATE dbo.vv 
    SET dbo.field1 = vvr.field1
    FROM dbo.vv
PRINT 'ROW2:' +  CAST(@@ROWCOUNT as varchar(11))
IF @@ROWCOUNT = 0 
        ROLLBACK TRAN 
    ELSE
        COMMIT TRAN
トランザクションステートメントなしでこれを実行すると、問題なく実行されるため、SQL が機能することはわかっていますが、トランザクションステートメントを追加すると、テーブル VV が存在しないと通知されて失敗します。VVで選択すると、間違いなく消えます。
上記が正常に実行されるようになったら、テーブル vvr を削除するステートメントを最後にもう 1 つ追加しますが、まだそこまで行っていません。