Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- indexOf
- sqlsearch설치
- 소계
- grouping sets
- object검색
- 총계
- 날짜형식
- 다음행
- 임시테이블
- 문자 숫자 조합 문자
- altertable
- 숫자변환
- SQL
- LAG
- ID만들기
- 테이블정보
- Temp Table
- numeric
- 날짜포멧
- Date
- Date Format
- 태블로 #tableau #비율막대그래프
- mssql
- 이전행
- 변수 생성
- REPLICATE
- Lead
- SQLSearch
- 테이블조회
- replace
Archives
- Today
- Total
Data Scientist
[MSSQL] Search for Procedure (프로시져 검색) 본문
MSSQL에서 프로시져의 사용량은 막대할 것이다. 그러나 그 안에 어떤 내용을 작성했는지 확인하고자 할 때 하나씩 직접 열어서 확인하지 않으면 그 내용을 볼 수 도 없기 때문에 불편함을 느낀다.
필자는 무려 테이블명 또는 중요 칼럼명이 바뀌는 경험을 해봤기 때문에 하나씩 찾아내는 불편함을 잘 알고 있다. 이번 포스팅에서는 추가적인 툴 설치 없이 쿼리만으로 프로시져 및 모듈을 검색하는 방법을 기술할 것이다.
다음 포스팅에서는 쿼리를 사용하지 않고 SQLSearch 라는 무료 툴에 대해 포스팅 할 예정이다. PC 성능이 여유롭다면 해당 툴을 설치해서 사용하기를 권장한다. (필자는 SQLSearch를 사용중이다)
1. KEYWORD가 포함된 프로시져 검색
SELECT ROUTINE_CATALOG,
ROUTINE_SCHEMA,
ROUTINE_NAME,
ROUTINE_TYPE
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_DEFINITION LIKE '%KEYWORD%'
AND ROUTINE_TYPE = 'PROCEDURE'
ORDER BY ROUTINE_NAME
COLUMN_NAME | DESCRIPTION |
ROUTINE_CATALOG | 데이터베이스 명칭 |
ROUTINE_SCHEMA | 스키마 명칭 |
ROUTINE_NAME | 모듈 명칭 |
ROUTINE_TYPE | 모듈 유형 |
2. 검색조건이 포함된 모듈 검색
SELECT O.NAME,
O.TYPE_DESC,
M.DEFINITION
FROM SYS.SQL_MODULES M
INNER JOIN SYS.OBJECTS O ON(M.OBJECT_ID = O.OBJECT_ID)
WHERE M.DEFINITION LIKE '%messenger.dbo.tb_message%'
ORDER BY 2,1
COLUMN_NAME | DESCRIPTION |
NAME | 모듈 명칭 |
TYPE_DESC | 모듈 유형 |
DEFINITION | 모듈 내용 |
상황에 따라서 프로시져 외에도 다양한 모듈을 검색할 수 있기 때문에 꽤 유용한 쿼리이다. 또한, 툴을 사용할 때보다 데이터베이스에서 직접 쿼리를 작성하여 실행하기 때문에 속도도 꽤 빠르다.
그러나, 빠른 검색은 가능하나 가독성이 떨어지는 단점을 갖고 있다.
'SQL' 카테고리의 다른 글
[MSSQL] 문자열 관련 함수 정리 (0) | 2020.08.07 |
---|---|
[MSSQL] 임시테이블 생성 및 관리, TEMP TABLE (0) | 2020.08.07 |
[MSSQL] 테이블 정보 조회 (0) | 2020.08.05 |
[MSSQL] Object 검색도구 SQL Search 설치 (0) | 2020.08.05 |
[MSSQL] 테이블, 칼럼 설명 추가 SP_ADD_EXTENDEDPROPERTY (0) | 2020.08.05 |