【转载】MSSQL @@ERROR 使用
mssql @@ERROR 使用
mssql @@ERROR是一个系统保存的整型变量,它是用来保存上一次Transact-SQL语句执行时发生错误的错误代码。可以使用SELECT @@ERROR查看该变量的值。它通常用在TRY-CATCH块中,在CATCH块中将错误信息输出到日志或者显示给用户。
下面通过两个示例来说明如何使用mssql @@ERROR:
示例一
BEGIN TRY -- 执行有错误的SQL语句 SELECT 1/0; END TRY BEGIN CATCH -- 输出错误信息 PRINT 'Error Number: ' + CONVERT(VARCHAR, @@ERROR); PRINT 'Error Message: ' + CONVERT(VARCHAR, ERROR_MESSAGE()); END CATCH
在这个示例中,TRY块中执行了一个有错误的SQL语句,即SELECT 1/0。这个语句会产生除数为0的运行时错误。当错误发生时,控制流就会进入CATCH块中,使用@@ERROR和ERROR_MESSAGE函数可以分别输出错误代码和错误消息到控制台或者日志文件里。
示例二
BEGIN TRANSACTION; BEGIN TRY -- 执行一些SQL语句 INSERT INTO ExampleTable (Col1, Col2) VALUES ('Value1', 'Value2'); UPDATE ExampleTable SET Col1 = 'NewValue1' WHERE Col1 = 'Value1'; END TRY BEGIN CATCH -- 回滚事务 IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION; -- 输出错误信息 PRINT 'Error Number: ' + CONVERT(VARCHAR, @@ERROR); PRINT 'Error Message: ' + CONVERT(VARCHAR, ERROR_MESSAGE()); END CATCH COMMIT TRANSACTION;
在这个示例中,执行两个SQL语句,分别是INSERT和UPDATE。如果在执行这两个语句中的任何一个语句中发生错误,那么就会触发CATCH块中的代码,回滚事务并输出错误信息。这个模式可以确保数据一致性,即如果出现错误会回滚所有语句并撤销修改,避免数据损坏。
分类:
SQL SERVER
标签:
SQL SERVER
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?