MsSql事务处理

TRUNCATE TABLE tmp
BEGIN TRAN 
BEGIN TRY
	INSERT INTO dbo.tmp( c1 ,c2 ,c3 )
	VALUES(1,1,1)
	SELECT 1/0
END TRY
BEGIN CATCH
	IF @@TRANCOUNT > 0 BEGIN ROLLBACK  END 
END CATCH

IF @@TRANCOUNT > 0 BEGIN COMMIT  END 
注,@@TRANCOUNT:
1)BEGIN TRANSACTION 语句将 @@TRANCOUNT 加 1。
2)ROLLBACK TRANSACTION 将 @@TRANCOUNT 递减到 0,
但 ROLLBACK TRANSACTION savepoint_name 除外,它不影响 @@TRANCOUNT。
3)COMMIT TRANSACTION 或 COMMIT WORK 将 @@TRANCOUNT 递减 1。