DB/MSSQL

[mssql] 저장 프로시저 내용 검색하기

벨포트조던 2019. 10. 1.
반응형

 

가끔 저장 프로시저 이름이 안떠오르거나 다수의 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



출처: https://blog.sonim1.com/111 [Kendrick's Blog]

출처: https://blog.sonim1.com/111 [Kendrick's Blog]

반응형

댓글