BEGIN TRANSACTION
insert table1--这一句OK
insert table2--执行这一句出错
IF @@ERROR>0
BEGIN
ROLLBACK
END
ELSE
COMMIT
--但最后,table2插入失败,table1却成功了!BEGIN TRY
insert table1--这一句OK
insert table2--执行这一句出错
END TRY
BEGIN CATCH
ROLLBACK
END CATCH
--据论坛的大虾说不要用事务,用try..catch,但还是不行啊,还是table2失败,但table1的插入并没有回滚
insert table1--这一句OK
insert table2--执行这一句出错
IF @@ERROR>0
BEGIN
ROLLBACK
END
ELSE
COMMIT
--但最后,table2插入失败,table1却成功了!BEGIN TRY
insert table1--这一句OK
insert table2--执行这一句出错
END TRY
BEGIN CATCH
ROLLBACK
END CATCH
--据论坛的大虾说不要用事务,用try..catch,但还是不行啊,还是table2失败,但table1的插入并没有回滚
BEGIN TRY
begin tran
insert table1
insert table2
commit
END TRY
BEGIN CATCH
ROLLBACK
END CATCH
BEGIN
BEGIN TRY
BEGIN TRANSACTION -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON; -- Hard code inserted data.
INSERT INTO UserInfo VALUES('JKhuang', 8);
INSERT INTO UserInfo VALUES('Jackson', 20111111);
INSERT INTO UserInfo VALUES('JKRush', 23); COMMIT TRANSACTION END TRY
BEGIN CATCH ROLLBACK TRANSACTION END CATCH
END
GO
set @error=@@errorinsert table2--执行这一句出错
set @error=@@errorIF @error=0
BEGIN
commit
END
ELSE
begin
rollback
end
begin tran
insert table1--这一句OK
if @@Error <>0 goto ExitErr
insert table2--执行这一句出错
if @@Error <>0 goto ExitErrcommit
goto ExitFlagExitErr:
rollbackExitFlag: