当我们在操作数据库时,有时会同时对多个表进行增删改,且这些表具有上下级的关联性,如果上级表数据操作失败,下级表数据操作成功,这时数据库中就会产生无用的数据。
sql语句中具有回滚事务,当启用事务后,sql语句出现错误时,就会将操作的数据还原。
BEGIN TRANSACTION--开始事务
DECLARE @errorSun INT --定义错误计数器
SET @errorSun=0 --没错为0
UPDATE aa SET id=2 WHERE a=1 --事务操作SQL语句,可以是存储过程
SET @errorSun=@errorSun+@@ERROR --累计是否有错
UPDATE aa SET id=2 WHERE a=1 --事务操作SQL语句,可以是存储过程
SET @errorSun=@errorSun+@@ERROR --累计是否有错
IF @errorSun<>0
BEGIN
PRINT '回滚'
ROLLBACK TRANSACTION--事务回滚语句
END
ELSE
BEGIN
PRINT '提交'
COMMIT TRANSACTION--事务提交语句
END