以前有的,找出来给你参考CREATE proc dbo.dt_test asBEGIN TRANSACTION
    insert into test(code,name) values('11','xyz1')
    If @@error<>0
     GOTO ErrHandler
    insert into test(code,name) values('11','xyz2')
    If @@error<>0
     GOTO ErrHandler
    insert into test(code,name) values('11','xyz3')
    If @@error<>0
     GOTO ErrHandler
    COMMIT TRANSACTION
    RETURN
Errhandler:
    ROLLBACK TRAN
GO