WEB开发网
开发学院数据库MSSQL Server SQL Server的怪辟:异常与孤立事务 阅读

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

 2007-11-11 11:40:43 来源:WEB开发网   
核心提示:·如何使用sql server(WINDOWS平台上强大的数据库平台)客户端配置工具·SQL2000无法安装的解决办法·sql server(WINDOWS平台上强大的数据库平台)2000 索引结构及其使用·全面接触SQL语法·SQL语法参考手册(S
    ·如何使用sql server(WINDOWS平台上强大的数据库平台)客户端配置工具
    ·SQL2000无法安装的解决办法
    ·sql server(WINDOWS平台上强大的数据库平台)2000 索引结构及其使用
    ·全面接触SQL语法
    ·SQL语法参考手册(SQL)
    ·ms sql删除重复的记录
    ·PL/SQL开发中动态SQL的使用方法
    ·很久以前的一个sql面试题及答案.
    ·Transact SQL 常用语句以及函数
    ·sql server(WINDOWS平台上强大的数据库平台)连接失败错误分析与排除

一、首先从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根本就没有被回滚。

1 2  下一页

Tags:SQL Server 异常

编辑录入:coldstar [复制链接] [打 印]
赞助商链接