ERROR_MESSAGE() - 返回错误的实际信息。 使用这些函数,你可以记录错误的详细信息,并将这些信息返回给调用它的过程或者记录,以便对错误进行追踪和修复。这些函数只能在Catch块被调用,在其它地方使用会返回NULL。然而,这些函数可以被Catch块中的代码所使用。也就是说,你可以调用一个存储过程来处理错误,于是这个存储过程...
CATCH 构造的 CATCH 块。 Transact-SQL 语法约定 语法 syntaxsql 复制 ERROR_MESSAGE ( ) 返回类型 nvarchar(4000) 返回值 在CATCH 块中调用时,ERROR_MESSAGE 返回导致 CATCH 块运行的错误消息的完整文本。 该文本包括为所有可替换参数提供的值,例如长度、对象名或时间。 在CATCH 块作用域外调用时,ERROR_...
catch:catch块是包含在begin catch和end catch之间的T-SQL代码段,在该代码段中检索和处理try块中的错误信息。 (3)、捕获错误的系统函数 1、error_number() 返回错误的ID号,对应sys.messages系统视图中的message_id字段。 2、error_line() 返回T-SQL代码中错误出现的语句行数。 3、error_message() 返回将返回...
Error_Message() 错误的消息文本 Error_Number() 错误编号 Error_Procedure() 发生错误的存储过程或触发器的名称 Error_Serverity() 错误的严重程度 Error_State() 错误的状态 在进行异常捕获时候,对于 CATCH 块我们需要注意处理好下面的工作: (1) 如果批处理使用了逻辑结构( begin tran/commit tran ),...
BEGIN CATCH IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION; -- 处理错误的代码 SELECT ERROR_NUMBER() AS ErrorNumber, ERROR_MESSAGE() AS ErrorMessage; END CATCH 在这个示例中,使用TRY/CATCH来处理插入操作可能发生的错误。如果发生错误,通过ROLLBACK语句回滚事务,并输出错误信息。
错误函数:ERROR_LINE、ERROR_MESSAGE、ERROR_NUMBER、ERROR_PROCEDURE、ERROR_SEVERITY 和 ERROR_STATE 系统函数:@@rowcount。 本机编译存储过程中的语句会更新 @@rowcount,因此,可用本机编译存储过程中的 @@rowcount 来确定受在该本机编译存储过程中执行的上条语句影响的行的数量...
SQL Server 2005 数据库引擎 引入 TRY...CATCH 构造来处理错误。TRY...CATCH 构造也支持其他返回的错误信息多于 @@ERROR 的系统函数(ERROR_LINE、ERROR_MESSAGE、ERROR_PROCEDURE、ERROR_SEVERITY 和 ERROR_STATE)。TRY...CATCH 也支持 ERROR_NUMBER 函数,但不限制该函数在语句产生错误后立即在语句中返回错误号。
BEGIN TRY -- SQL END TRY BEGIN CATCH --SQL END CATCH 1. 2. 3. 4. 5. 6. 7. 可以在CATCH中使用以下语句抛出错误: THROW {error_number | @local_variable}, { message | @local_variable }, { state | @local_variable }; 1. 2. 3....
SELECT * FROM NonexistentTable; END TRY BEGIN CATCH SELECT ERROR_NUMBER() AS ErrorNumber, ERROR_MESSAGE() AS ErrorMessage; END CATCH 未捕获错误,并且控制将构造传出 TRY...CATCH 到下一个更高的级别。 在SELECT 存储过程内运行该语句会导致错误发生在低于 TRY 块的级别。 该错误由 TRY...CATCH...
在本节中,将着重介绍在T-SQL中如何使用Try/Catch进行异常处理;当我们人为地进行异常处理的时候,我们制定异常相关的Message信息, 这些Message通过SQL Server特性的数据表进行维护...,并且通过系统定义的stored procedure进行操作,在本节的最后,将介绍光如何定义和维护这些message,并通过一个完整的例子将他们使用到具体的...