/*********************************************************************************
SYSOBJECTS
데이터베이스에서 만들어진 각 개체(제약 조건, 기본값, 로그, 규칙, 저장 프로시저)당
한 개의 행을 포함합니다.
**********************************************************************************/
SELECT * FROM SYSOBJECTS
/*
name : 개체 이름
id : 개체 ID
xtype :
F - FOREIGN KEY 제약조건
U - 사용자 테이블
TR - 트리거
PK - PRIMARTY KEY 제약조건
P - 저장 프로시저
FN - 스칼라 함수
V - 뷰
TF - 테이블 함수
D - 기본값 (DEFAULT) 제약조건
S - 시스템 테이블
C - CHECK 제약조건
crdate : 만든 날짜
type :
F - FOREIGN KEY 제약조건
U - 사용자 테이블
TR - 트리거
P - 저장 프로시저
K - PRIMARTY KEY 또는 UNIQUIE 제약조건
FN - 스칼라 함수
V - 뷰
TF - 테이블 함수
D - 기본값 (DEFAULT) 제약조건
S - 시스템 테이블
C - CHECK 제약조건
*/
--저장 프로시저 검색
SELECT * FROM SYSOBJECTS WHERE TYPE='P'
/********************************************************************************
SYSCOMMENTS
데이터베이스 내의 각 뷰, 규칙, 기본값, 트리거, CHECK 제약 조건, DEFAULT 제약 조건
및 저장 프로시저에 대한 항목을 포함합니다.
**********************************************************************************/
SELECT * FROM SYSCOMMENTS
/*
id : 해당 텍스트를 적용할 개체 ID
text : SQL 정의 문의 실제 텍스트 nvarchar(4000)
*/
-- 저장프로시저의 이름과 내용 보기
SELECT A.ID, B.NAME, B.XTYPE, LEN(A.TEXT), A.TEXT
FROM SYSCOMMENTS AS A
INNER JOIN SYSOBJECTS AS B
ON A.ID=B.ID
AND B.XTYPE='P'
/******************************/
/*저장프로시저의 내용 검색하기*/
/******************************/
DECLARE @KEYWORD VARCHAR(100)
-- 키워드 세팅
SET @KEYWORD = 'USP_GSCK_EVENT_ENTRANT_CULTURE_LIST_OLD'
-- 키워드의 개체 존재 유무 확인
SELECT NAME FROM SYSOBJECTS WHERE NAME = @KEYWORD
-- 개체 자신을 제외한 다른 프로시저의 내용에 개체가 존재하는지 확인
SELECT A.ID, B.NAME, A.TEXT
FROM SYSCOMMENTS AS A
INNER JOIN SYSOBJECTS AS B
ON A.ID=B.ID
AND B.XTYPE='P'
WHERE B.NAME ! = @KEYWORD
AND A.TEXT LIKE '%' + @KEYWORD + '%'