DB에서 모든 프로시져, 뷰, 테이블, 스키마, 스칼라 함수 내 쿼리 검색 Procedure 검색 프로시저, 뷰, 테이블, 스칼라 함수 쿼리 내 문구 찾기 Searching Query in Procedure
프로그램 자료/MS-SQL 2013. 2. 15. 12:05
출처 : http://www.sqler.com/318666
2013/02/15 - [프로그램 자료/MS-SQL] - 모든 테이블에서 속성 칼럼 Column 열 이름 검색
USE 디비명
1. Schema(스키마) 에서 가져오는 방법
SELECT ROUTINE_NAME
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_TYPE='PROCEDURE'
AND ROUTINE_DEFINITION LIKE '%검색어%'
ORDER BY ROUTINE_NAME;
2. Comments 에서 가져오는 방법
SELECT DISTINCT A.NAME
FROM dbo.SysObjects A JOIN dbo.SysComments B ON A.ID = B.ID
WHERE A.TYPE = 'P' AND B.TEXT LIKE '%검색어%'
ORDER BY A.NAME;
3. Comments 에서 가져오는 방법
/*
P : 프로시저
V : 뷰
U : 테이블
FN : 스칼라 반환 함수
TR : 트리거
*/
SELECT DISTINCT A.type, A.NAME, b.definition
FROM sys.SysObjects A JOIN sys.sql_modules B ON A.ID = B.object_id
WHERE A.TYPE in( 'P', 'V', 'U', 'FN', 'TR', 'TF' ) AND B.definition LIKE '%검색어%'
ORDER BY A.type, A.NAME;
à DISTINCT 를 한 이유는, 해당 Procedure 안에 같은 단어가 여러 번 나올경우,
결과가 여러 번 나오기 때문입니다.
참고로 1.번 방법은 VARCHAR(4000) 이상의 크기를 가진 Procedure는 찾아내지 못합니다.