투케이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
/**************************************************************/
 

[결과 출력]

 

 

반응형
Comments