原来SQL也有try-catch

本文介绍了一个SQL Server存储过程中使用try-catch进行异常处理的例子,并详细展示了如何捕获并记录错误信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        今天看项目示例代码,存储过程里也有写try-catch代码块,觉得很新鲜,不知道是不是SQL 2005的新语法(以前一直用2000),代码如下
CREATE PROC [dbo].[p_TNoticeAdmin_RowByLastModifyDate]
    
@intNoticeAdminID INT
AS

SET NOCOUNT ON;

-- �������� Declare
DECLARE @btResult BIT--������ ���� ���� (0: ����, 1: ����)

-- MAIN CODE: Begin

BEGIN TRY

    
SELECT ModifyDate FROM TNoticeAdmin
    
WHERE NoticeAdminID = @intNoticeAdminID
        
    
SET @btResult = 0;
  
END TRY
BEGIN CATCH
    
    
DECLARE @strErrContent VARCHAR(50),
        
@intErrorNumber INT,
        
@intErrorSeverity INT,
        
@intErrorState INT,
        
@strErrorProcedure NVARCHAR(126),
        
@intErrorLine INT,
        
@strErrorMessage NVARCHAR(4000);
    
    
SET @strErrContent = '�������� ȯ�������� ���������� ���� �б� ó�� ����';
    
SET @intErrorNumber = ERROR_NUMBER();
    
SET @intErrorSeverity = ERROR_SEVERITY();
    
SET @intErrorState = ERROR_STATE();
    
SET @strErrorProcedure = ERROR_PROCEDURE();
    
SET @intErrorLine = ERROR_LINE();
    
SET @strErrorMessage = ERROR_MESSAGE();

    
EXEC p_TDBErrLog_Create @strErrContent@intErrorNumber@intErrorSeverity@intErrorState
        
@strErrorProcedure@intErrorLine@strErrorMessage;

    
RAISERROR(@strErrorMessage@intErrorSeverity@intErrorState@strErrorProcedure@intErrorLine);

    
SET @btResult = 1;
END CATCH

        呵呵,虽然SQL 2008都要出来了,做了次小白,但这也是一大收获。

转载于:https://www.cnblogs.com/treeyh/archive/2008/01/24/1051107.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值