Transaction And Lock--在事务中使用TRY CATCH
2014-01-16 18:15
253 查看
1>当XACT_ABORT被设置为ON时,如果TSQL 语句遇到运行时错误,整个事务会被回滚和结束
2>当XACT_ABORT被设置为OFF时,如果TSQL 语句遇到运行时错误,只会回滚当前产生错误的语句,并继续执行后续语句,直到运行到COMMMIT和ROLLBACK语句。
3>当客户端执行TSQL时连接断开,则自动回滚当前事务。
4>当TSQL语句执行时遇到错误级别为19及以上错误时,回话会被强制断开,事务被回滚
5>在事务提交前可以使用XACT_STATE()来判断事务是否可以提交,如果XACT_STATE()=1,则该事务可以被提交,如果XACT_STATE()=-1,则该事务只能被回滚。
6>使用TYR CATCH语句时,TRY中语句执行时遇到错误级别为11-18的错误时,SQL Server 会将错误信息保存并跳转到CATCH语句块,CATCH语句无法捕获到错误级别小于11的错误
7>查看错误消息的方法
--ERROR_NUMBER() 返回错误号。
--ERROR_SEVERITY() 返回严重性。
--ERROR_STATE() 返回错误状态号。
--ERROR_PROCEDURE() 返回出现错误的存储过程或触发器的名称。
--ERROR_LINE() 返回导致错误的例程中的行号。
--ERROR_MESSAGE() 返回错误消息的完整文本。 该文本可包括任何可替换参数所提供的值,如长度、对象名或时间。
2>当XACT_ABORT被设置为OFF时,如果TSQL 语句遇到运行时错误,只会回滚当前产生错误的语句,并继续执行后续语句,直到运行到COMMMIT和ROLLBACK语句。
3>当客户端执行TSQL时连接断开,则自动回滚当前事务。
4>当TSQL语句执行时遇到错误级别为19及以上错误时,回话会被强制断开,事务被回滚
5>在事务提交前可以使用XACT_STATE()来判断事务是否可以提交,如果XACT_STATE()=1,则该事务可以被提交,如果XACT_STATE()=-1,则该事务只能被回滚。
6>使用TYR CATCH语句时,TRY中语句执行时遇到错误级别为11-18的错误时,SQL Server 会将错误信息保存并跳转到CATCH语句块,CATCH语句无法捕获到错误级别小于11的错误
7>查看错误消息的方法
--ERROR_NUMBER() 返回错误号。
--ERROR_SEVERITY() 返回严重性。
--ERROR_STATE() 返回错误状态号。
--ERROR_PROCEDURE() 返回出现错误的存储过程或触发器的名称。
--ERROR_LINE() 返回导致错误的例程中的行号。
--ERROR_MESSAGE() 返回错误消息的完整文本。 该文本可包括任何可替换参数所提供的值,如长度、对象名或时间。
相关文章推荐
- Transaction And Lock--事务中使用return会回滚事务吗?
- Transaction And Lock--存储过程中使用事务的模板
- Transaction And Lock--使用资源锁来控制并发
- Transaction And Lock--常用的查询事务和锁的语句
- Transaction And Lock--存在嵌套事务吗?
- 关于自治事务和锁 PRAGMA AUTONOMOUS_TRANSACTION & LOCK
- Instance Nine:使用Transaction(事务) 手动提交,自动回滚
- 事务使用中如何避免误用分布式事务(System.Transactions.TransactionScope)
- 20170205JDBC的学习第二天:PreparedStatement的使用、事务(Transaction)的学习
- 8.5.2: Spring的事务---使用TransactionProxyFactoryBean创建事务代理
- 存储过程中使用事务与try catch
- Transaction And Lock--由外键导致的死锁
- 如何使用event 10049分析定位library cache lock and library cache pin
- 在mysql中的存储过程中使用事务transaction【以下内容仅供参考】
- beego一个请求中的事务处理不能使用全局的orm实例,否则:transaction has started
- spring使用TransactionProxyFactoryBean配置事务
- Transact-SQL事务与SqlTransaction和TransactionScope的使用
- Spring中编程式事务处理(使用TransactionTemplate)
- 【Spring】20、使用TransactionSynchronizationManager在spring事务提交之后进行一些操作。
- 在VB.NET使用OracleTransaction 处理事务