CREATE PROCEDURE ZP_프로세스명_INS WITH RECOMPILE AS BEGIN SET NOCOUNT on SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED .... END |
ZP_프로세스명_INS
보통 SP_로 쓰는 경우가 많지만, 이경우 시스템 SP 명과 유사하여, 탐색하기가 여간 귀찮은게 아니다. 매번 Object_id > -1 할 순 없지 않을까? 하여, 아예 이름 명명을 ZP_로 시작하는 것으로 해봤다.
뒤의 INS는 입력, LST는 목록, DEL은 삭제.
SET NOCOUNT on
프린트를 찍거나 할 때, "(2개 행이 영향을 받음)"과 같이 실행한 행수 보여주는 게
불필요할 때가 있다. 과감히 실행 행수는 없애고, 원하는 Print 를 보여준다.
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
이 문서의 하일라이트! MS SQL은 Oracle 과 달라 격리 수준을 명시적으로 정해줘야 하는데,
테이블에 직접 힌트를 넣는 방식은 익히 WITH(NOLOCK) 으로 알고 있을 터.
그러나 모든 SP의 갯수가 수 천개를 육박하고, 서버마다 챙겨줘야 한다면,
각 SP 최상단에 위의 옵션을 추가하는 것만으로도 WITH(NOLOCK) 놓친 원죄로부터 자유로울 수 있다.
이상은 개발하다가 갑자기 두서없이 남기고 싶은 충동에 써 넣은 것으로,
실제로는 SP 에 따라 Transaction 처리, 에러처리, Log 처리 등 다양한 방식으로
비즈니스 처리를 구현해 나가고 있다.
'PROGRAMMING > Database' 카테고리의 다른 글
공통테이블과 조인 (0) | 2018.05.05 |
---|---|
중복된 행 제거 기술 (0) | 2018.04.22 |
MSSQL 동적쿼리 내 한글깨짐 (0) | 2018.03.15 |
MSSQL DB 파일 옮기기 (0) | 2018.02.22 |
지정한 Year, Month 및 Day 매개 변수가 DateTime을 표현할 수 있는 범위를 벗어났습니다. (0) | 2018.02.22 |
댓글