mssql @@ERROR 使用


一、@@error简介

@@error是MSSQL中一个系统常量,当当前SQL语句执行错误时,则@@error的值不为零,
在一个SQL进程中,@@error 随SQL语句的执行,@@error的值时刻发生着变化。


@@error在系统中都被存放在 master数据中 sysmessages表中

我们可以通过
USE master
select * from sysmessages where error=错误编号
获取错误原因



自定义错误消息的方法:

USE master

EXEC sp_addmessage 50005, 16,
N’英文版50005错误信息’,’us_english’,false,replace

EXEC sp_addmessage 50005, 16, ‘中文版50005错误信息’,’简体中文’,
false,replace


二、@@error主要应用场景

2.1 在一个事务中,我们需要通过检测当前SQL是否在执行中发生错误,而回滚执行。
2.2 触发器中应用@@error
在触发器中可用 RAISERROR (50009, 16, 10) 抛出错误,
其中50009就是错误编号,也可以是错误信息说明 16 10 具体的行和列可自已定