마이크로소프트 2000 서버에서 쿼리탐색기를 사용할 경우에는 테이블에서 바로 조회할수 있는 기능이 있지만,
마이크로소프트 2008 서버에서 관리스튜디오로 조회했을 경우에는 조회할 기능이 없다.

참고블로그 :  http://zmeun.tistory.com/category/SQL 

SQL SERVER의 데이타베이스는 객체( 테이블, 스토아 프로지저, 인덱스, 뷰 등)에 대한 메타데이타 정보를 저장하고 있다.

1. 객체와 객체의 연관성에 대한 정보를 가지고 있는 테이블 : SYSDEPENDS
중요한 열이름은 ID(객체ID), DEPID(종속된 객체ID) 칼럼이다.

2. 객체 본인에 대한 기본정보를 가지고 있는 테이블 : SYSOBJECTS
중요한 열이름은 ID, XTYPE 칼럼이다. XTYPE의 코드와 코드명은 아래와 같다
C = CHECK 제약 조건
D = 
기본값 또는 DEFAULT 제약 조건
F = FOREIGN KEY 
제약 조건
L = 
로그
FN = 
스칼라 함수
IF = 
인라인 테이블 함수
P = 
저장 프로시저
PK = PRIMARY KEY 
제약 조건(유형은 K)
RF = 
복제 필터 저장 프로시저
S = 
시스템 테이블
TF = 
테이블 함수
TR = 
트리거
U = 
사용자 테이블
UQ = UNIQUE 
제약 조건(유형은 K)
V = 

X = 
확장 저장 프로시저

** 테이블 ID를 가지고 해당 테이블을 사용하는 스토아프로시저 가져오기

SELECT DISTINCT O.NAME

FROM SYSDEPENDS AS D

INNER JOIN SYSOBJECTS AS O ON D.ID = O.ID

WHERE D.DEPID = [테이블ID] AND O.XTYPE = 'P'


** 테이블 ID 가져오기
SELECT ID FROM SYSOBJECTS WHERE NAME = 특정 테이블명

** 특정 칼럼을 사용하고 있는 함수나 프로시저 가져오기
SELECT             CASE    O.XTYPE 
                                          WHEN   'P'        THEN    '저장 프로시져'
                                          WHEN   'FN'      THEN    '함수'
                                END                AS       TYPE,
                                 O.NAME 
FROM SYSDEPENDS AS D
INNER JOIN SYSOBJECTS AS O ON D.ID = O.ID
WHERE D.DEPID IN
 (SELECT           O.ID
FROM SYSOBJECTS                   AS       O 
INNER JOIN SYSCOLUMNS AS      C         ON       O.ID = C.ID
WHERE C.NAME = 'trace_yn'          )
 AND O.XTYPE IN ('P' , 'FN')
GROUP BY O.NAME, O.XTYPE

** syscomments 테이블도 메타데이타 정보를 가지고 있군요.
SQL SERVER
Find Stored Procedure Related to Table in Database
Search in All Stored Procedure
 
December 10, 2006 by pinaldave

Following code will help to find all the Stored Procedures (SP) which are related to one or more specific tables. sp_help and sp_depends does not always return accurate results.

----Option 1
SELECT DISTINCT so.name
FROM syscomments sc
INNER JOIN sysobjects so ON sc.id=so.id
WHERE sc.TEXT LIKE '%tablename%'
----Option 2
SELECT DISTINCT o.name, o.xtype
FROM syscomments c
INNER JOIN sysobjects o ON c.id=o.id
WHERE c.TEXT LIKE '%tablename%' 


블로그 이미지

희망잡이

,