시작하기무료로 시작하기

중첩된 TRY...CATCH에서 오류 함수 사용하기

매장에 전기 자전거가 새로 입고되어, 재고를 업데이트해야 해요.

Trek Powerfly 5 - 2018 자전거 2대를 개당 $3499.99에, New Power K- 2018 자전거 3대를 개당 $1999.99에 입고 처리하려고 해요.

이 제품들이 신형이라고 생각해 데이터베이스에 삽입하려 했지만, 첫 번째 모델은 이미 재고에 있다는 사실을 깜박했어요. 다행히 products 테이블에는 모든 제품 이름이 고유해야 한다는 제약 조건이 있어요.

삽입 중 발생할 수 있는 오류를 제어하는 스크립트를 준비하세요. 또한 발생한 오류를 errors 테이블에 기록하고, 오류 기록에 실패할 경우 오류 번호와 오류 메시지를 표시하도록 하세요.

이 연습은 강의의 일부입니다

SQL Server에서의 트랜잭션과 오류 처리

강의 보기

연습 안내

  • 오류 처리를 CATCH 블록으로 감싸세요.
  • errors 테이블에 'Error inserting a product'를 삽입하고, 이 삽입을 또 다른 TRY 블록으로 감싸세요.
  • 중첩된 오류 처리를 또 다른 CATCH 블록으로 감싸세요.
  • 내부 CATCH 블록에서 오류 라인과 오류 메시지를 선택하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

BEGIN TRY
    INSERT INTO products (product_name, stock, price) 
    VALUES	('Trek Powerfly 5 - 2018', 2, 3499.99),   		
    		('New Power K- 2018', 3, 1999.99)		
END TRY
-- Set up the outer CATCH block
___ ___
	SELECT 'An error occurred inserting the product!';
    -- Set up the inner TRY block
    ___ ___
    	-- Insert the error
    	INSERT INTO ___ 
        	VALUES ('Error inserting a product');
    ___ ___    
    -- Set up the inner CATCH block
    ___ ___
    	-- Show number and message error
    	SELECT 
        	___ AS line,	   
			___ AS message; 
    ___ ___    
___ ___
코드 편집 및 실행