1、以下是一個簡單事務存儲過程,其中Users表ID為主鍵 CREATE PROCEDURE SP_TRANSACTIONAS BEGIN BEGIN TRANSACTION INSERT INTO USERS(ID,NAME)VALUES(1000,'TEST1000'); IF @@ERROR<
1、以下是一個簡單事務存儲過程,其中Users表ID為主鍵
CREATE PROCEDURE SP_TRANSACTION
AS
BEGIN
BEGIN TRANSACTION
INSERT INTO USERS(ID,NAME)VALUES(1000,'TEST1000');
IF @@ERROR<>0
GOTO CLEARUP
INSERT INTO USERS(ID,NAME)VALUES(1000,'TEST1001');
IF @@ERROR<>0
GOTO CLEARUP
COMMIT
CLEARUP:
ROLLBACK
END
備註:
@@ERROR表示如果前一個 Transact-SQL 語句執行沒有錯誤,則返回 0。如果前一個語句遇到錯誤,則返回錯誤號。
INSERT INTO USERS(ID,NAME)VALUES(1000,'TEST1000');
print @@ERROR --當主鍵存在1000時,錯誤號為2627
print @@ERROR --返回 0,因為上一條Transact-SQL 語句“print @@ERROR”執行沒有錯