[ MSSQL. Procedure 오류 발생 시 Log만 저장하기 ]

 

1. 정의

    . 보통 오류가 발생하면 Rollback이 되기 때문에 trace정보등을 db에 저장 할 수 가 없다.

    . 이에 대한 방법으로 같은db에 dbLink정보를 만들어서

      Procedure호출 시 dbLinknam.??.db.log_procdure_name arg1, arg2;

      와 같이 호출 하면 main transaction과 관계없이 log만 insert 및 commit이 된다.

 

2. 예제

    EXEC TMS_SVR.GDMIP.dbo.CM_PROCEDURE_EXEC_LOG_PROC @@PROCID, @ERR_MSG;

 

 

USE [TMS];
GO
SET ANSI_NULLS ON;
GO
SET QUOTED_IDENTIFIER ON;
GO
ALTER PROCEDURE [dbo].[CM_PROCEDURE_EXEC_LOG_PROC]
(
    @SPID   INT,
    @LOG_MESSAGE    NVARCHAR(1000) = NULL,
 @LOG_UID  UNIQUEIDENTIFIER = NULL,
 @ROW_CNT  DECIMAL(18,0) = NULL
)
AS
 SET NOCOUNT ON;

 INSERT INTO dbo.CM_PROCEDURE_EXEC_LOG
 (
   SP_NAME
  ,LOG_MESSAGE
  ,LOG_DATE
  ,LOG_UID
  ,ROW_CNT
 )
 VALUES
 (
   OBJECT_NAME(@SPID)
  ,@LOG_MESSAGE
  ,GETDATE()
  ,@LOG_UID
  ,@ROW_CNT
 );


GO

'(DB) MS SQL > Procedure (문법)' 카테고리의 다른 글

MS Sql -Procedure. Dynamic sql  (0) 2017.12.08
MS SQL.Procedure-시스템 변수  (0) 2017.02.09
MS SQL.Procedure-값 return  (0) 2017.02.09
MS SQL.Procedure -Argument  (0) 2017.02.09
MS SQL.Procedure -Cursor, Fetch  (0) 2017.02.09
Posted by 농부지기
,

[ MS Sql - Procedure 내용 검색 ]

 

 

1. 정의

    - Procedure 내용 검색

   

Posted by 농부지기
,

[ MS Sql - 현재 수행중인 Procedure 조회 ]

 

 

1. 정의 : db단에서 현재 수행중인 Procedure찾기 

   

Posted by 농부지기
,

[ MS Sql -Procedure. Dynamic sql ]

 

1. 방법1

 

2. 방법2

 

3. 방법3

Posted by 농부지기
,

[ MS Sql - System Table (Schema 정보)  ]

 

 

INFORMATION_SCHEMA. 을 기준으로 MS Sql Schema 정보를 볼 수 있다.

 

--컬럼정보

 

--테이블정보

 

--View정보

 

--Procedure

 

 

 

Posted by 농부지기
,

[ MSSMS - 초기 설정 ]

 

* 메뉴 >  도구 > 옵션 *

1. 환경 > 시작  :   시작시 [개체 탐색기 및 쿼리 창 열기]

2. 궈리 실행 > SQL Server > 일반  
   : SET ROWCOUNT [ 50 ]
     - SELECT시 조회 레코드 수.   TOP 이 존재 시 TOP 이 우선 적용

 

3. 궈리 실행 > SQL Server > 고급
   : SET LOCK TIMEOUT [ -1]
     - 테이블 LOCK이 걸려 있을 때 기다리는 제한 시간.
     - 2 로 설정이 2초 기다렸는데도 Lock이 계속 유지시 오류 발생
    

Posted by 농부지기
,

[MSSQL]SQL 서버 관리자가 알아야 할 11가지 유용한 팁

 

 

http://www.jnetwork.co.kr/bbs/board.php?bo_table=useguide&wr_id=208

Posted by 농부지기
,

[ MSSQL-Connect By. 조직도 조회 ]

 

 

1. 참고 URL : http://roqkffhwk.tistory.com/140

Posted by 농부지기
,

MSSQL - LOCK

(DB) MS SQL/LOCK 2017. 4. 12. 14:54

[ MSSQL - LOCK ]

 

/*  MS SQL의 LOCK 개념 *
1. MS SQL 은 기본적으로 레코드 락임
2. MS SQL Server는 SELECT시 LOCK을 걸지 않음
   (내부적으로는 SELECT LOCK이라는게 걸리지만, 이 LOCK은 INSERT, UPDATE LOCK하고는 다름)
*/

 

/* SELECT 종류 */
/*1. 단순 SELECT */
--Insert, Update중에 아래 SELECT문장을 수행 할 경우
--  > 조회결과에 Insert, Update중인 자료가 존재 하면  대기함.
--  > 조회결과에 Insert, Update중인 자료가 존재 하지 않으면 바로 조회 됨.
--단, 이때 index scan인 경우에 해당 됨
--    즉, 만약 full scan인 경우에는 조건절 및 결과절과 관계 없이 모조건 대기함.
SELECT * FROM TEMP_KYH;
SELECT * FROM TEMP_KYH WHERE temp1 = '2';

 

/*2. with(nolock), WITH(READUNCOMMITTED) */
--Insert, Update중 lock이 발생했지만 commit되지 않은 상태라도
--commit되었다 판단하여 자료가 조회 됨
SELECT * FROM TEMP_KYH with(nolock);
SELECT * FROM TEMP_KYH WITH(READUNCOMMITTED);

 

/*3. with(readpast) */
--Insert, Update중 lock이 발생한 레코드를 제외 하고 나머지 자료만 조회
SELECT * FROM TEMP_KYH with(readpast);

 

/*4. with(updlock) */
--SELECT시 UPDATE LOCK을 설정
--조회결과에 Insert, Update중인 자료가 존재시 조회 대기 함.
SELECT * FROM TEMP_KYH WITH (UPDLOCK)  WHERE temp1 = '1';


/* PROCEDURE 개발시 아래 문장존재 하면 좋음 */
--procedure에서 모든 select문장에 with(nolock), with(readpast)을 기술하지 않아도 됨
--SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;   --with(unlock)
--SET TRANSACTION ISOLATION LEVEL READ COMMITTED;     --with(readpast)

참고 url : http://kuaaan.tistory.com/97
Posted by 농부지기
,

[ MS SqlServer. Lock 조회 및 관리방법 ]

 

 

1. Lock 상세 조회 :  http://srzero.tistory.com/147

 

2. Lock 확인 및 IP 추적 : http://supercrat.blog.me/220669558749

'(DB) MS SQL > System관리' 카테고리의 다른 글

MS SQL.PLSQL - 메모리관리  (0) 2017.01.27
Posted by 농부지기
,