본문 바로가기
DATABASE/MsSQL

[MsSQL] 프로시저 내용 찾기 - 특정 테이블이 사용되는 프로시저 찾기

by DANEW 2024. 11. 16.

Procedure 내용 찾기

오라클의 프로시저의 특정 내용을 찾는 쿼리를 알아보았었다.

[Oracle] 프로시저 내용 찾기 - 특정 테이블이 사용되는 프로시저 찾기

MsSQL도 이와 같은 쿼리를 만들 수 있는데, 해당 쿼리는 트리거나 함수 등에서 사용은 못하고 프로시저의 내용만 찾는 쿼리이다.

 

Query

use [데이터베이스 명]

select name,
       object_definition(object_id) as txt
  from sys.PROCEDURES
 where object_definition(object_id) like '%[프로시저에서 찾고 싶은 내용]%'

 

위 쿼리를 사용하면 해당 데이터베이스 내의 프로시저 중 내가 찾고싶은 내용을 포함한 프로시저를 찾을 수 있다.

데이터베이스 별로 검색해야하기에 불편한 감이 있지만, 아래의 포스팅의 쿼리와 함께하면 좀더 효율적으로 사용 할 수 있다.

 

[MsSQL] 모든 DB에 한번 쿼리 던지기 / DB 모를 때 (SP_MSFOREACHDB 활용하기)

EXEC MASTER.dbo.SP_MSFOREACHDB 
    '
    use ?
    begin

      select db_name(),
             name,
             object_definition(object_id) as txt
        from sys.PROCEDURES
       where object_definition(object_id) like ''%[프로시저에서 찾고싶은 내용]%''

    end 
    '

 

위와 같이 사용할 수 있다.

 

반응형