科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道SQL Server的怪辟:异常与孤立事务

SQL Server的怪辟:异常与孤立事务

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

首先从SQLServer中Error讲起,SQL中错误处理有些怪辟 错误级别同是16但结果都不同.....

作者:无悔 来源:天极论坛整理 2007年10月12日

关键字: SQL Server 异常 孤立事务

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共2页)

一、首先从SQLServer中Error讲起,SQL中错误处理有些怪辟 错误级别同是16但结果都不同。

以下是引用片段:
select * from 一个不在的表
  if @@error<>0
    print '这个没有输出'
  go

  raiserror('',16,3)
  if @@error<>0
    print '这个输出了'
  go

  exec('select * from 一个不在的表')
  if @@error<>0
    print '这个输出了'
  go

  exec sp_executesql N'select * from 一个不在的表'
  if @@error<>0
    print '这个输出了'

  这样你可以发现通过exec或sp_executesql执行可疑的sql,这样就可以在后面捕捉到被异常终止的错误。

  二、引出孤立事务:

  1、孤立事务的产生

以下是引用片段:
select @@trancount 当前连接的活动事务数 --当前连接的活动事务数为0

    begin tran

    select * from 一个不在的表
    if @@error<>0
    begin
      print '没有执行到这里来!'
      if @@trancount<>0 rollback tran
    end

    commit tran

  select @@trancount 当前连接的活动事务数 --执行后你看看 当前连接的活动事务数为1,且重复执行会每次累加,这是很耗资源的。

  应为rollback根本就没有被回滚。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章