MSSQL 프로시저 내용 검색, 파라미터 검색 방법

개요

MSSQL 에서 프로시저의 내용 – 보통은 특정 테이블을 참조했는지 , 또는 특정 함수를 참조했는 지 등 – 을 검색하는 방법입니다.
테이블은 sys.sql_modules를 사용는데, 프로시저 이름도 가져와야해서 sys.objects 를 참조합니다.
프로시저의 파라미터는 syscolumns 테이블을 이용합니다.( sql 2022 버전까지는 동작하는데, 그 이후에는 동작 안할 수도 있습니다. )

프로시저 내용 검색 예제

SELECT B.NAME
FROM sys.sql_modules A
JOIN SYS.OBJECTS B ON A.object_id = B.object_id
WHERE A.definition LIKE '%mil%'

mil 이라는 문구가 들어가있는 모든 프로시저를 검색했습니다.

프로시저 내용 검색 결과

한 개 행 up_test 라는 프로시저가 검색되었습니다. 해당 프로시저의 내용은 아래와 같습니다.

위 내용은 프로시저로 만들어서 쿼리 바로가기에 등록해놓으면 사용하기 편합니다.
쿼리 바로가기 등록 방법

프로시저 파라미터 검색 예제

아래 예제는 @A 라는 파라미터를 사용하는 모든 프로시저를 검색하는 쿼리입니다. 예를 들면 @CUST_CD 를 파라미터로 받는 모든 프로시저를 찾아야 하는 경우 등에 활용할 수 있습니다.

SELECT B.NAME, A.NAME, C.NAME, A.length, A.xprec, A.xscale
FROM SYSCOLUMNS A
JOIN SYS.OBJECTS B ON A.ID = B.OBJECT_ID
JOIN SYS.TYPES C ON A.XTYPE = C.user_type_id
WHERE A.NAME = '@A'
프로시저 파라미터 검색 결과

참조

MS 문서 ( SYS.OBJECTS 등 ) 링크
링크 페이지 열어보면 왼쪽 트리에 테이블들이 많이 보이는데, 가끔 사용하게 되는 테이블들이 있으니 참고하세요.

Comments

No comments yet. Why don’t you start the discussion?

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다