手机访问 | 设为首页 | 加入收藏 | 网站地图

当前位置:电脑中国 > 数据库 > MSSQL >

MS Sql事务

2016-03-02 22:49|来源:未知 |作者:dnzg |点击:

1、以下是一个简单事务存储过程,其中Users表ID为主键

CREATE PROCEDURE SP_TRANSACTION
AS
  BEGIN
     BEGIN TRANSACTION
    I N S E R T INTO USERS(ID,NAME)VALUES(1000,'TEST1000');
    IF @@ERROR<>0
         GOTO CLEARUP

    I N S E R T INTO USERS(ID,NAME)VALUES(1000,'TEST1001');
    IF @@ERROR<>0
      GOTO CLEARUP
  COMMIT

  CLEARUP:
    ROLLBACK
 END

 

备注:

@@ERROR表示如果前一个 Transact-SQL 语句执行没有错误,则返回 0。如果前一个语句遇到错误,则返回错误号。

I N S E R T INTO USERS(ID,NAME)VALUES(1000,'TEST1000');
print @@ERROR --当主键存在1000时,错误号为2627
print @@ERROR --返回 0,因为上一条Transact-SQL 语句“print @@ERROR”执行没有错

(责任编辑:dnzg)