프로시저가 꽤 많은데 소스가 없는 상황이라..
프로시저를 수정해야 하면 sp_helptext 로 확인해서 조금씩 수정해 오고 있는데요,
전체 프로시저 소스를 백업을 해 두는게 좋을 것 같아서, 커맨드를 이용해서 특정 DB 내에 작성된 모든 SP 를 추출하고싶은데
방법이 있을까요?
Comment 3
-
정홍석
2013.04.22 13:59
-
절간신부™
2013.04.23 11:51
답변 감사합니다. ~
-
한태
2016.04.01 20:10
아래 쿼리를 실행하면 접속해있는 DB내의 SP 내용을 확인할 수 있습니다.select SPECIFIC_NAME, ROUTINE_DEFINITIONfrom information_schema.routineswhere routine_type = 'PROCEDURE'ssms에서 제공하는 스크립트 생성을 이용할 수도 있습니다.스크립트생성을 이용하면 drop구문, 사용자 권한 부여 등의 옵션도 지정하여 스크립트에 넣을 수 있기에보다 활용도가 높고 정확하게 이용할 수 있습니다.
위 쿼리에서 보시는 것 처럼 sys.all_sql_modules 테이블을 이용하여 개체의 내용을 볼 수 있습니다.
(type에 따라 다른 개체의 definition도 확인 가능합니다) (row_number는 편의에 의해 추가된 행 입니다)
또 다른 방법은, SSMS 개체 탐색기의 해당 DB 마우스 오른쪽 버튼 메뉴에서
(태스크 → 스크립트 생성) 메뉴를 이용하여 원하는 스크립트를 추출할 수 있습니다.