在 SQL Server 中,每个错误都有特定的错误消息。当服务器在查询执行期间识别出错误时,此函数将帮助我们获取该错误消息。此函数在 TRY CATCH 块的范围内工作。
例如,我们在 TRY 块中编写了一系列语句。如果 SQL Server 发现错误,那么 CATCH 块中的 ERROR_MESSAGE() 将被执行并返回相应的错误描述。
SQL 错误消息函数语法
ERROR_MESSAGE 函数不接受任何参数,并返回 NVARCHAR(4000) 作为输出。SQL Server 中 Error_Message 的语法是
ERROR_MESSAGE();
以下语句将返回错误消息(文本)和相应的错误编号。在这里,我们重点介绍了众所周知的服务器错误消息,即遇到的除零错误。
SELECT * FROM sys.messages

错误消息示例
在此示例中,我们将向您展示如何使用 Sql Server Error_Message 函数返回错误消息。
BEGIN TRY
DECLARE @Number smallint,
@Result smallint;
SET @Number = 32760;
SET @Result = @Number + 10;
SELECT @Number AS Number,
@Result AS Result;
END TRY
BEGIN CATCH
PRINT N'Error Message = ' + ERROR_MESSAGE();
END CATCH

首先,我们将 Number 变量赋值为 32,760,将 Result 变量赋值为 32,770。
SET @Number = 32760; SET @Result = @Number + 10;
众所周知,smallint 存储的数字范围是 -32,768 到 32,767,这意味着溢出。因此,它将退出 TRY 块并执行我们 CATCH 块中的语句,即
PRINT N'Error Message = ' + ERROR_MESSAGE();
ERROR_MESSAGE 示例 2
在此示例中,我们将计算 1/0 的结果。
BEGIN TRY SELECT 1/0 AS Result; END TRY BEGIN CATCH SELECT ERROR_MESSAGE() AS [Error Message]; END CATCH

在 TRY 块中,我们正在计算 1/0 的结果。
SELECT 1/0 AS Result;
我们都知道上面指定的语句会引发错误。因此,CATCH 块中的 error_message 语句(即下面的语句)将被执行。
SELECT ERROR_MESSAGE() AS [Error Message];