Home > Database > Mysql Tutorial > body text

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

WBOY
Release: 2016-06-07 15:04:49
Original
1206 people have browsed it

一、首先从SQLServer中Error讲起,SQL中错误处理有些怪辟 错误级别同是16但结果都不同。 以下是引用片段: select * from 一个不在的表 if @@error0 print '这个没有输出' go raiserror('',16,3) if @@error0 print '这个输出了' go exec('select * from 一

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

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

  raiserror('',16,3)
  if @@error0
    print '这个输出了'
  go

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

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

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

  二、引出孤立事务

  1、孤立事务的产生

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

    begin tran

    select * from 一个不在的表
    if @@error0
    begin
      print '没有执行到这里来!'
      if @@trancount0 rollback tran
    end

    commit tran

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

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

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template