다음예제는 날짜 형식을 받을때  생기는 오류를 체크해서 NULL 로 삽입하고 있습니다.

DECLARE @생년월일 SMALLDATETIME

BEGIN  TRY	
		SELECT @생년월일 = 생년월일 FROM INSA WHERE 사번='000206'	
END TRY
BEGIN CATCH
		PRINT '날짜변경오류'
		SET @생년월일 = NULL
END CATCH
참고로 SQL 2005 부터 사용가능합니다.

 

오류났을때 메세지 보여주기(추가된 코드)

SELECT    ERROR_LINE() AS 'ERROR_LINE'
SELECT    ERROR_MESSAGE() AS 'ERROR_MESSAGE'
SELECT    ERROR_NUMBER() AS 'ERROR_NUMBER'
SELECT    ERROR_PROCEDURE() AS 'ERROR_PROCEDURE'
SELECT    ERROR_SEVERITY()  AS 'ERROR_SEVERITY'
SELECT    ERROR_STATE()  AS 'ERROR_STATE'

오류가 났을때 표시되는 결과값

image

다음예제는 날짜 형식을 받을때  생기는 오류를 체크해서 NULL 로 삽입하고 있습니다.
또한 오류가 발생하면 오류정보를 표시하고 있는중

DECLARE @생년월일 SMALLDATETIME

BEGIN  TRY	
		SELECT @생년월일 = 생년월일 FROM INSA WHERE 사번='000206'	
END TRY
BEGIN CATCH
		PRINT '날짜변경오류'
		SET @생년월일 = NULL
	SELECT	ERROR_LINE() AS 'ERROR_LINE'
	SELECT	ERROR_MESSAGE() AS 'ERROR_MESSAGE'
	SELECT	ERROR_NUMBER() AS 'ERROR_NUMBER'
	SELECT	ERROR_PROCEDURE() AS 'ERROR_PROCEDURE'
	SELECT	ERROR_SEVERITY()  AS 'ERROR_SEVERITY'
	SELECT	ERROR_STATE()  AS 'ERROR_STATE'


END CATCH

참고할 만한 사항

http://technet.microsoft.com/ko-kr/library/ms179296(SQL.90).aspx

+ Recent posts