연구개발/DBA
DB 개체 스크립트 생성 프로그램 - SQL 2000, 2005
HEAD1TON
2010. 7. 27. 03:43
아주 유용하고 간단한 프로그램이 있어서 소개드립니다.
전체 DB 또는 개별 DB, 특정 테이블의 스크립트를 생성시켜주는 프로그램입니다.
SQL 2000의 Enterprise Manager나 2005의 SSMS에서 스크립트 생성을 이용하여 생성할 수도 있지만,
정기적으로 개체의 스크립트를 백업 받아야 하는 상황에서 이용하면 아~주 유용할 것 같습니다.
SQL 2000및 2005 다 지원되며, Open Source이기 때문에 C#을 아신다면 적절히 수정해서 이용하셔도 될 듯
합니다.
총 3개의 프로그램이며, 커멘드 형식으로 수행됩니다.
1. ScriptAllDBs.exe : 서버의 모든 DB 개체에 대해 스크립팅을 수행합니다.
[사용 방법]
ScriptAllDBs <스크립트가 저장될
위치> <서버 명> [
※ Windows
인증으로 접속이 가능한 경우에는 아이디와 패스워드를 생략해도 됩니다.
예) dshannote 서버의 모든 DB
개체에 대한 스크립트를 D:\Temp
디렉토리 밑에 생성하고자 할 경우
D:\>ScriptAllDBs D:\Temp
dshannote
![]() |
2. ScriptDB.exe : 특정 DB의 모든 개체에 대한 스크립트를 생성합니다.
[사용 방법]
ScriptDB <스크립트가 저장될
위치> <서버 명> <데이터베이스 명>
[
※ Windows
인증으로 접속이 가능한 경우에는 아이디와 패스워드를 생략해도 됩니다.
예) dshannote\ss2005
서버의 AdventureWorks
DB에 대한 모든 개체의 스크립트를 D:\AdventureWorks
디렉토리 밑에 생성하고자 할 경우
D:\>ScriptDB D:\AdventureWorks
dshannote\ss2005 AdvenureWorks
![]() |
3. ScriptTable.exe : 특정 DB의 특정 테이블에 대한 스크립트를 생성합니다. 이 때,
인덱스 및 제약 사항도 스크립팅 됩니다.
[사용 방법]
ScriptTable <스크립트가 저장될
위치> <서버 명> <데이터베이스 명>
<소유자(스키마).테이블 명> [
※ Windows
인증으로 접속이 가능한 경우에는 아이디와 패스워드를 생략해도 됩니다.
예) dshannote\ss2005
서버의 AdventureWorks
DB의
Person.Address 대한 스크립트를 D:\Address
디렉토리 밑에 생성하고자 할 경우
D:\>ScriptTabke D:\Address dshannote\ss2005
AdvenureWorks Person.Address
![]() |
추가로 설명드리겠습니다.
만약, dshannote\ss2005 서버의 AdventureWorks
DB의 스크립트를 D:\Backup\년월일 형태의 디렉터리에 매일 백업하도록 하는 SQL
Agent 작업을 생성하고자 할 경우, 다음과 같은 형태의 배치 파일(*.bat 또는 *.cmd)을 이용해서 SQL Agent에 운영체제
명령(CmdExec)으로 설정하시면 됩니다.
[예 : D:\GenScript.cmd] - ScriptDB.exe 파일이 D:\에 있다고
가정
SET DateStr=%DATE%
D:\ScriptDB %FileName% %ServerName% %Database% |
[SQL Agent 의 작업 등록 예제]

다음과 같이 일자별 폴더가 생성되면서 AdventureWorks의 스크립트가 생성됩니다...

그럼..^^