您的位置:首页 > 数据库

SQL Server Try Catch错误处理

2008-07-18 15:27 477 查看
一。语法要点:

BEGIN TRY

{ sql_statement ¦ statement_block }

END TRY

BEGIN CATCH

[ { sql_statement ¦ statement_block } ]

END CATCH

[ ; ]

异常部分:

在 CATCH 块的作用域内,可以使用以下系统函数来获取导致 CATCH 块执行的错误消息:

ERROR_NUMBER() 返回错误号。

ERROR_SEVERITY() 返回严重性。

ERROR_STATE() 返回错误状态号。

ERROR_PROCEDURE() 返回出现错误的存储过程或触发器的名称。

ERROR_LINE() 返回导致错误的例程中的行号。

ERROR_MESSAGE() 返回错误消息的完整文本。 该文本可包括任何可替换参数所提供的值,如长度、对象名或时间。

二。实例:

Step 1:

Create PROCEDURE SysLogError

AS

BEGIN

Insert into SystemErrorLog

(SPName,Description,LogTime)

Values

(ERROR_PROCEDURE(),Convert(nvarchar(MAX),ERROR_LINE()) + ':' + ERROR_MESSAGE(),GetDate())

END

Step 2:



BEGIN TRY

BEGIN TRANSACTION;

。。。。

COMMIT TRANSACTION;

END TRY

BEGIN CATCH

IF @@TRANCOUNT > 0

BEGIN

ROLLBACK TRANSACTION;

END

EXECUTE [dbo].[SysLogError];

END CATCH;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: