一个存储过程用了 一个事务 但是执行该存储过程后 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
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
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有数据
sp_mshelpcolumn TB1
CREATE TABLE #table(A varchar(100))
--这个是临时表,时候后,要直接
drop table #table
--否则第二次执行容易出现问题。--2、
INSERT INTO TB1(a) SELECT A FROM #table
--TB1表是否只有1个字段,如果只有一个字段,确认其不是自增列