IT/SQLD

[MSSQL] 저장 프로시저(Stored Procedure) 내용 검색하기

알콩달콩아빠 2023. 5. 22. 21:17
728x90
반응형

저장 프로시저 내용 검색하기

가끔 저장 프로시저 이름이 안떠오르거나 다수의 SP의 내용을 일괄적으로 바꾸거나 할 필요가 있을 경우가 있습니다. 저장 프로시저를 일일이 열어봐서 찾으려고 하니 숨이 턱막힙니다.


그럴 때 유용한 저장프로시저 내용 검색쿼리를 소개합니다.

잘못된 방식

SELECT *
FROM INFORMATION_SCHEMA.ROUTINES
 WHERE ROUTINE_DEFINITION LIKE '%찾을 내용%'
 AND ROUTINE_TYPE='PROCEDURE'

…포스트 작성하기 전까지는 위 쿼리를 사용했었습니다만 찾다보니 문제를 발견하였습니다.
ROUTINE_DEFINITION이 nvarchar(4000)으로 문자열을 변환하여 내려주기 때문에 매우 긴 내용의 경우 검색에 문제가 있다고 합니다.

다음 스크립트는 올바른 결과를 제공합니다.

SELECT OBJECT_NAME(object_id), 
 OBJECT_DEFINITION(object_id)
FROM sys.procedures
WHERE OBJECT_DEFINITION(object_id) LIKE '%찾을 내용%'

참고

StackOverflow
sqlHints.com

 

How to find all the Stored Procedures having a given text in it?

Recently, I was needed to search for all the Stored Procedures having a given text in its definition. So, as usual did the g :) :) gling,  most of the top results returned were suggesting to use IN…

sqlhints.com

 

출처 : [MSSQL] 저장 프로시저(Stored Procedure) 내용 검색하기 (sonim1.com)

728x90
반응형