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”执行没有错
时间: 2024-10-14 00:53:51