原来SQL也有try-catch

        今天看项目示例代码,存储过程里也有写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、付费专栏及课程。

余额充值