본문 바로가기
DB/MSSQL (SQLSERVER)

[MSSQL] SERACH PROCEDURE! 특정 단어가 들어간 프로시져 찾기

by 커져라불어라 2020. 7. 28.
반응형

안녕하세요 투자하는 개발자 투개자입니다.


오늘은 특정 단어가 포함된 프로시져를 찾는 쿼리에 대해 알아보겠습니다.

데이터베이스를 관리하다보면 프로시져, 트리거, 인덱스 등 쿼리, DB성능을 향상시키기 위해 작성하곤 합니다.

이때 수많은 프로시져를 생성하다 보면 원하는 프로시져를 깜박하거나, 급히 수정해야할 때, 해당 프로시져를 찾는 방법이있다면

빠르게 찾아 update할 수 있습니다.




1. SYSCOMMENTS 테이블 활용

프로시져를 조회할 때, 시스템 테이블을 활용할 텐데 저희가 활용할 뷰 테이블은 SYSCOMMENTS 테이블입니다.


SELECT * FROM SYS.syscomments WITH(NOLOCK)
cs

참고로 WITH(NOLOCK)을 함께 쳐주는 이유는 MSSQL은 기본적으로 공유잠금이 걸리는데 이걸 풀어주기 위해 작성합니다.

공유잠금에 대한 글을 확인해주세요~

https://in-harvey-it.tistory.com/17


2. 조건을 줘서 LIKE에 특정 단어 입력


SELECT TEXT FROM SYS.syscomments WITH(NOLOCK)
WHERE  OBJECTPROPERTY(id, 'IsProcedure'= 1 
  AND text LIKE '%특정단어입력%'
OPTION (MAXDOP 1)
cs



이렇게 쿼리를 작성하면 해당 쿼리에 대한 전체 Text가 나옵니다. 그곳에서 프로시져 이름을 얻고 해당 프로시져를 ALTER하시면 됩니다.

반응형