프로그램/Mssql

MS-SQL 프로시져 내용 검색

워누별 2024. 1. 23. 11:46
반응형

/*********************************************************************************
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'
SELECT * FROM SYSOBJECTS WHERE TYPE='TR'


/********************************************************************************
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 = 'tb_booksell'
-- 키워드의 개체 존재 유무 확인
SELECT NAME FROM SYSOBJECTS WHERE NAME = @KEYWORD
-- 개체 자신을 제외한 다른 프로시저의 내용에 개체가 존재하는지 확인

SELECT A.ID, B.NAME
 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 + '%'
GROUP BY A.ID, B.NAME

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 + '%'

반응형