一个存储过程用了 一个事务 但是执行该存储过程后 TB1表并没有插入数据 ,这是怎么回事。
CREATE PROC P_TEST_T
AS
BEGIN BEGIN TRANSACTION
BEGIN TRY CREATE TABLE #table(A varchar(100)) INSERT INTO #table(A)
SELECT getdate() AS [a]
INSERT INTO TB1(a) 
SELECT A FROM #table COMMIT TRANSACTION
END TRY
BEGIN CATCH
rollback TRANSACTION
END CATCH

END

解决方案 »

  1.   

    create table tb1(a datetime)
    CREATE PROC P_TEST_T
    AS
    BEGIN BEGIN TRANSACTION
        BEGIN TRY    CREATE TABLE #table(A varchar(100))    INSERT INTO #table(A)    
        SELECT getdate() AS [a]
            INSERT INTO TB1(a) 
        SELECT A FROM #table    COMMIT TRANSACTION
    END TRY
    BEGIN CATCH
        rollback TRANSACTION
    END CATCH
        
    ENDexec P_TEST_Tselect * from tb1
    ------------
    a
    2010-12-24 20:45:00.000有数据
      

  2.   

    请楼主告知TB1表的表结构.
    sp_mshelpcolumn TB1
      

  3.   

    有2个小问题:--1、
    CREATE TABLE #table(A varchar(100))
    --这个是临时表,时候后,要直接
    drop table #table
    --否则第二次执行容易出现问题。--2、
    INSERT INTO TB1(a) SELECT A FROM #table
    --TB1表是否只有1个字段,如果只有一个字段,确认其不是自增列