MS-SQL을 쓰다보면
함수나 프로시저 등을 많이 사용합니다.
기본적으로 제공하는 것들도 많고
필요에 따라서 만들어서 쓰는 경우도 많습니다.
그래서 오늘은
SQL SERVER에서 프로시저 혹은 함수의
정보를 확인하고 백업하는 방법 등을
정리해보려고 합니다.
우선은, 프로시저나 함수의
생성 쿼리를 가져올 수 있는 방법
정리해보려고 합니다
그러면 해당 쿼리만 가지고 있으면
언제든 다시 만들 수 있기 때문에
백업을 할 수 있는 것이지요.
쿼리는 다음과 같습니다.
SELECT A.TEXT, * FROM syscomments a, sysobjects b where B.xtype in ('P','FN') AND A.ID = B.ID
위처럼 해주시면 되십니다.
위처럼 해주시면 함수나 프로시저의
생성 정보를 가져올 수 있습니다.
실행 결과는
다음과 같이 나오게 됩니다.
위처럼 나오게 됩니다.
이 중, Text 부분이
프로시저나 함수를 생성하는
쿼리입니다.
그러니 이 부분만 백업을 해 놓아도
충분히 다시 복구를 할 수 있습니다.
그러면 이제 특정 프로시저 혹은 함수에 대해서만
가져오는 방법을
정리해보려고 합니다.
위 쿼리에서
조건을 하나만 더 추가해 주시면 되십니다.
쿼리는 다음과 같습니다.
SELECT A.TEXT, * FROM syscomments a, sysobjects b where B.xtype in ('P','FN') AND A.ID = B.ID and b.name = '이름' --프로시저, 함수 명
위처럼 해주시면 되십니다.
그리고 이름이라고 적혀있는 곳에
원하는 함수 혹은 프로시저의
이름을 입력해주시면 되십니다.
그러면 결과는 아래처럼 나오게 됩니다.
위처럼 나오게 되는 것입니다.
제가 선택한 프로시저 혹은 함수의
정보만을 가져오는 것입니다.
그러면 이번에는
PROCEDURE 및 FUNCTION 의
생성일자, 수정일자 등
여러가지 정보를 가져오는 방법을
정리해보도록 하겠습니다.
쿼리는 다음과 같습니다.
SELECT ao.name, modify_date as update_date ,* FROM sys.sql_modules sm, sys.all_objects ao WHERE sm.object_id = ao.object_id and ao.type = 'P' ORDER BY modify_date desc
위처럼 해주시면 되십니다.
그러면 여러가지 정보를 가져올 수 있습니다.
modify_date는 최종 수정일자입니다.
이 부분이 어떻게 보면 제일 중요할 수 있어서
다시 나오게 해 놓은 것입니다.
위처럼 쿼리를 작성하고
실행을 하면
결과는 다음과 같이 나오게 됩니다.
위처럼 나오게 되는 것입니다.
그러면 이름, 수정일자 등
여러가지 정보를 확인할 수 있습니다.
지금 화면에 보여지는 정보가 다가 아니라
오른쪽에 여러가지 다른 정보들이 더 있습니다.
그러니 필요하신 정보를
확인해보시면 되십니다.
이번에는 특정 PROCEDURE 나 FUNCTION의
정보를 가져오는 방법을
정리해보려고 합니다.
이것도 위에 쿼리에서
조건을 한줄만 더 추가해주시면 되십니다.
쿼리는 다음과 같습니다.
SELECT ao.name, modify_date as update_date ,* FROM sys.sql_modules sm, sys.all_objects ao WHERE sm.object_id = ao.object_id and ao.type = 'P' and ao.name = '이름' --함수 혹은 프로시저의 이름 ORDER BY modify_date desc
위처럼 해주시면 되십니다.
이름이라고 되어 있는 곳에
PROCEDURE 이나 FUNCTION 의 이름을
입력해주시면 되십니다.
그러면 해당 PROCEDURE 나 FUNCTION 의
정보만을 가져올 수 있습니다.
실행을 했을 때,
결과는 다음과 같습니다.
위처럼 나오게 됩니다.
이렇게 해서 해당 PROCEDURE 나 FUNCTION 의
정보만을 확인할 수 있게 됩니다.
마지막으로
xType의 값이
무엇을 의미하는지도
정리를 해보도록 하겠습니다.
AF : 집계 함수(CLR)
C : CHECK 제약 조건
D : 기본값 또는 DEFAULT 제약 조건
F : FOREIGN KEY 제약 조건
L : 로그
FN : 스칼라 함수
FS : 어셈블리(CLR) 스칼라 함수
FT : 어셈블리(CLR) 테이블 반환 함수
IF : 인라인 테이블 함수
IT : 내부 테이블
P : 저장 프로시저
PC : 어셈블리(CLR) 저장 프로시저
PK : PRIMARY KEY 제약 조건(type : K)
RF : 복제 필터 저장 프로시저
S : 시스템 테이블
SN : 동의어
SQ : 서비스 큐
TA : 어셈블리(CLR) DML 트리거
TF : 테이블 함수
TR : SQL DML 트리거
TT : 테이블 유형
U : 사용자 테이블
UQ : UNIQUE 제약 조건(type : K)
V : 뷰
X : 확장 저장 프로시저
이렇게 되어 있으니
참고해주시면 되십니다.
오늘은 SQL SERVER에서의
함수 및 프로시저의 생성쿼리를 가지고와서
백업하는 방법을 정리해보았습니다.
그리고 함수 및 프로시저의 생성일, 수정일 등
여러가지 정보를 가져오는 방법도
정리를 해 보았습니다.
이것은 많이 사용이 되지는 않을 것 같기는 합니다.
하지만, 꼭 필요한 상황이 있을 것 같습니다.
그러니 알고 있으면
여러모로 쓸모가 있을 것 같습니다.
이상으로 MS-SQL에서의
프로시저 및 함수 정보가져오기 및
Backup 하는 방법이였습니다~
'컴퓨터관련 > MS-SQL' 카테고리의 다른 글
MS-SQL에서 단어자동완성 옵션 활성화 및 해제하기 (0) | 2020.04.09 |
---|---|
MS-SQL에서 랜덤정렬하기 (0) | 2020.03.11 |
MS-SQL에서의 TRY, CATCH 이용 에러 예외처리 (0) | 2020.02.28 |
MS-SQL에서 쿼리 이력 조회하기 (6) | 2020.02.26 |
[MS-SQL]에러코드로 에러내용 가져오기 (0) | 2020.02.14 |