본문 바로가기
컴퓨터관련/MS-SQL

MSSQL에서 테이블명, 문자열 검색하기

by 빛과 어둠사이 2020. 7. 17.
728x90
반응형
SMALL

이번에는 MS-SQL에서

테이블명이나 문자열 등을 이용해서

프로시저 혹은 뷰 등을 검색하는 방법을

정리해보고자 합니다.

 

위에 말한게 조금 말이 이상하다고 해야 할까?

좀 그렇네요.

좀 더 쉽게 설명을 하자면

프로시저나 뷰 등에서는 여러 테이블 등을 참조해서

만들고 사용을 합니다.

 

그래서 해당 테이블이나 특정 문자열이 사용되어서

생성이 된, 

그런 SP 나 VIEW를 찾는 방법입니다.

 

 

 

1. 테이블명

특정 테이블을 참조하는 

뷰나 프로시저를 테이블명을 이용하여

찾는 방법입니다.

 

아래의 쿼리를 이용하여

검색을 할 수 있습니다.

예시 쿼리는 다음과 같습니다.

Select object_name(id) 
From syscomments Where text like '%테이블명%'
Group by object_name(id)
Order by object_name(id)
;

위 쿼리에서

테이블명 부분을 수정해 주시면 되십니다.

그러시면 해당 테이블을 참조하는

프로시저나 뷰 등을

검색할 수 있습니다.

 

제가 운영중인 DB에서 

테이블명을 넣어서 위 쿼리를 돌려보았습니다.

그랬더니 결과는 아래와 같이 나오게 되었습니다.

 

 

위처럼 나와졌습니다.

해당 테이블을 참조하는 

SP나 VIEW 리스트가 나오게 된 것입니다.

이름은 운영중인 것이기 때문에

숨겼습니다.

 

 

 

2. 문자열 검색

이번에는 문자열을 검색하는 방법을

정리해보도록 하겠습니다.

 

저는 문자열을 검색할 때는

컬럼명을 넣어서 검색할 때 사용합니다.

특정 컬럼명을 참조하거나 사용하거나,

그런 경우를 찾는 것입니다.

 

실제 사용 쿼리는 다음과 같습니다.

아래 쿼리를 이용해서 실행을 할 수 있습니다.

select * from sys.all_objects as o  with(nolock)
inner join sys.sql_modules as a with(nolock) on o.object_id = a.object_id
where a.definition like '%문자열%'
order by o.name asc

위 쿼리에서 문자열 부분에

검색하고자 하는 문자열을 입력해 주시면 되십니다.

그러면 해당 문자열이 들어가져 있는

프로시저나 뷰를 검색해서

결과를 보여줍니다.

 

제가 운영중인 DB의 특정 컬럼명을 넣어서

위 쿼리를 실행시켜 보았습니다.

그랬더니 결과가 아래처럼 나왔습니다.

 

위처럼 쿼리 결과가 나왔습니다.

SP나 VIEW의 이름, object_id, type 등

여러가지 데이터들이 나왔습니다.

 

이렇게 리스트나 나왔으면 그걸 가지고

참고해서 확인을 해볼 수 있습니다.

 

 

 

 

오늘은 SQL SERVER에서 

테이블명, 문자열을 이용하여

프로시저나 뷰 등을 검색하는 방법을

정리해보았습니다.

 

많이 사용하지는 않으나,

테이블이나 컬럼명 등을 이용하여

해당 테이블이나 컬럼을 사용하는

SP나 VIEW를 찾을 수 있으니

알고 계시면 좋을 것 같습니다.

 

 

 

이상으로 MSSQL에서 테이블명, 문자열을 이용하여

프로시저나 뷰 검색하는 방법이였습니다~

 

 

 

 

[영진.com(영진닷컴)]DB 성능 향상을 위한 SQL Server 운영과 튜닝, 영진.com(영진닷컴)

파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음

 

 

 

 

 

 

 

728x90
반응형
LIST