您的位置:首页 > 博客中心 > 数据库 >

sqlserver事务与回滚

时间:2022-03-13 22:42

如果要在Production执行数据改动必须小心,可以使用事务提前验证一下自己写的SQL是不是你期望的。尤其是Update的where 条件有问题的话,跟新的记录就会超出预期的范围。如下面的语句,一着急我差点把cartid = 678417 忘了,要是在Production执行影响就大了。

BEGIN TRY
   BEGIN TRANSACTION
     insert into dbo.area values(‘1111‘)
    insert into dbo.area values(‘2222‘)
    select 1/0
    insert into dbo.area values(‘333‘)
   COMMIT
END TRY
BEGIN CATCH
   IF @@TRANCOUNT > 0
     ROLLBACK

  DECLARE @ErrMsg nvarchar(4000), @ErrSeverity int
  SELECT @ErrMsg = ERROR_MESSAGE(),
         @ErrSeverity = ERROR_SEVERITY()

  RAISERROR(@ErrMsg, @ErrSeverity, 1)
END CATCH

sqlserver事务与回滚,布布扣,bubuko.com

热门排行

今日推荐

热门手游