Notice
Recent Posts
Recent Comments
Link
투케이2K
48. (MSSQL/SQL) [프로시저/PROCEDURE] [INPUT [없음] / OUT [컬럼]] 모바일 디바이스 데이터 초기화 본문
MsSqlDB
48. (MSSQL/SQL) [프로시저/PROCEDURE] [INPUT [없음] / OUT [컬럼]] 모바일 디바이스 데이터 초기화
투케이2K 2022. 4. 8. 10:15[개발 환경 설정]
개발 툴 : SSMS
개발 언어 : MSSQL
[소스 코드]
/***************************************************************/
--CREATE PROCEDURE PRO_DEL_UUID -- [생성]
ALTER PROCEDURE PRO_DEL_UUID -- [수정]
/***************************************************************
설명 - 사용자 디바이스 고유값 일괄 초기화 수행
---------------------------------------------------------------
프로시저 생성 조회 : sp_helptext 'dbo.PRO_DEL_UUID'
---------------------------------------------------------------
프로시저 호출 : EXEC PRO_DEL_UUID;
---------------------------------------------------------------
프로시저 삭제 : DROP PROCEDURE PRO_DEL_UUID
***************************************************************/
AS
/**************** [프로시저 전역 변수 선언 실시] ***************/
DECLARE @V_STEP NVARCHAR(100); -- [디버깅 단계]
DECLARE @V_DATE NVARCHAR(100); -- [프로시저 수행 시간]
DECLARE @V_LOG NVARCHAR(500); -- [디버깅 로그]
DECLARE @OUT_MSG NVARCHAR(500); -- [리턴 메시지]
/************** [프로시저 동작 쿼리문 작성 실시] ***************/
BEGIN TRY
/*=========================================================*/
-- [로직 : 스텝 저장]
SET @V_STEP = '1';
-- [프로시저 수행 날짜 및 시간 확인]
SET @V_DATE = CONVERT(CHAR(19), getDate(), 20);
-- [로그 출력 실시]
SET @V_LOG = '[STEP = ' + @V_STEP + '] ' + '[DATE = ' + @V_DATE + ']';
PRINT '========================================='
PRINT @V_LOG
PRINT '========================================='
/*=========================================================*/
-- [로직 : 스텝 저장]
SET @V_STEP = '2';
-- [트랜 잭션 커밋 동작 수행]
BEGIN TRAN
-- [UPDATE 문 수행 실시]
UPDATE TEST_TABLE SET DEVICE_UUID = NULL
WHERE DEVICE_TYPE = 'AOS'
AND ID_NUM = '12345678' -- [특정 사용자 우선 테스트]
;
-- [업데이트 수행 에러 체크 실시]
IF @@ERROR <> 0
BEGIN
-- [로그 출력 실시]
SET @V_LOG = '[STEP = ' + @V_STEP + '] ' + '[ERROR = ' + CONVERT(VARCHAR, @@ERROR) + ']';
PRINT '========================================='
PRINT @V_LOG
PRINT '========================================='
-- [메시지 출력]
SET @OUT_MSG = 'N: UPDATE ERROR [STEP = ' + @V_STEP + '] ' + '[' + @V_DATE + ']';
PRINT '========================================='
PRINT @OUT_MSG
PRINT '========================================='
-- [리턴 메시지 컬럼 반환]
--/*
SELECT @OUT_MSG
;
-- */
-- [롤백 처리]
ROLLBACK TRAN
-- [리턴 처리]
RETURN;
END
COMMIT TRAN
-- [메시지 출력]
SET @OUT_MSG = 'Y: SUCCESS ' + '[' + @V_DATE + ']';
PRINT '========================================='
PRINT @OUT_MSG
PRINT '========================================='
-- [리턴 메시지 컬럼 반환]
--/*
SELECT @OUT_MSG
;
-- */
-- [리턴 처리]
RETURN;
/*=========================================================*/
END TRY
/************** [프로시저 예외 발생 처리 실시] ***************/
BEGIN CATCH
-- [메시지 출력]
SET @OUT_MSG = 'N: EXCEPTION [STEP = ' + @V_STEP + '] ' + '[' + @V_DATE + ']';
PRINT '========================================='
PRINT @OUT_MSG
PRINT '========================================='
-- [리턴 메시지 컬럼 반환]
--/*
SELECT @OUT_MSG
;
-- */
-- [리턴 처리]
RETURN;
END CATCH
/**************** [프로시저 종료 처리 부분] ******************/
GO
/**************************************************************/
[결과 출력]
반응형
'MsSqlDB' 카테고리의 다른 글
Comments