CREATE PROCEDURE [dbo].[SP_TEMP_INSERT_ERROR_LOG](
@pi_name varchar(50)=''
,@pi_age int
) AS
BEGIN
-- DECLARE @crud_count BIGINT ;
DECLARE @sp_name NVARCHAR(100) -- 프로시저 이름
,@sp_start_date VARCHAR(25) -- 프로시저 실행날짜
,@sp_end_date VARCHAR(25) -- 프로시저 종료 날짜
,@error_line VARCHAR(50) -- 에러라인
,@error_msg NVARCHAR(MAX) -- 에러메세지
,@error_number VARCHAR(50) -- 에러행
,@error_severity VARCHAR(50) -- 에러심각도
SET NOCOUNT ON
-- SET XACT_ABORT ON
SET @sp_name = 'SP_TEMP_INSERT_ERROR_LOG';
/**
IF XACT_STATE() = -1
BEGIN
GOTO ERRORHANDLER;
END
**/
BEGIN TRY
print 'TRY 실행';
SET @sp_start_date = CONVERT(VARCHAR(25), GETDATE(), 121);
BEGIN TRAN
INSERT INTO T_TEMP (TEMP_NAME, TEMP_AGE) VALUES(@pi_name, @pi_age);
INSERT INTO T_TEMP (TEMP_NAME, TEMP_AGE) VALUES(@pi_name, '에러발생시키기'); -- 에러발생
INSERT INTO T_TEMP (TEMP_NAME, TEMP_AGE) VALUES(@pi_name, @pi_age+2);
COMMIT TRAN;
PRINT '커밋 성공'
END TRY
BEGIN CATCH
PRINT 'CATCH 실행';
SELECT @error_line=ERROR_LINE(), @error_number=ERROR_NUMBER(), @error_msg=ERROR_MESSAGE(), @error_severity=ERROR_SEVERITY()
SET @sp_end_date=CONVERT(varchar(25), GETDATE(), 121);
PRINT '에러발생 SP명 ===> ' + @sp_name
PRINT '에러라인 ===> ' + @error_line
PRINT '에러발생시간 ===> ' + @sp_end_date
PRINT '에러번호 ===> ' + @error_number
PRINT '에러 메세지 ===> ' + @error_msg
PRINT '에러 심각도 ===> '+ @error_severity
ROLLBACK TRAN
END CATCH
END
-- ERRORHANDLER:
-- print 'ERRORHANDLER 실행'
-- IF XACT_STATE() <> 0
-- PRINT '롤백성공';
-- ROLLBACK TRAN ;
'ETC' 카테고리의 다른 글
CentOS 7에 PostgreSQL 13을 설치하는 방법 (1) | 2020.11.18 |
---|---|
클라우드 환경에서 데이터를 활용하면 어떤 장점이 있을까? (0) | 2020.11.11 |
클러스터 그룹 변경 (0) | 2020.08.28 |
Net Framework install 오류 코드 : (0x00000057), "매개 변수가 잘못되었습니다." (0) | 2020.08.28 |
Visual Studio Community (0) | 2020.08.28 |