Transaction And Lock--在事务中使用TRY CATCH
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() 返回错误消息的完整文本。 该文本可包括任何可替换参数所提供的值,如长度、对象名或时间。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现