연구개발/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%
SET FileName=D:\Backup\%DATE:-=%
SET ServerName=dshannote\ss2005
SET Database=AdventureWorks

 

D:\ScriptDB %FileName% %ServerName% %Database%

 
[SQL Agent 의 작업 등록 예제]
 
 다음과 같이 일자별 폴더가 생성되면서 AdventureWorks의 스크립트가 생성됩니다...
 
 
 
그럼..^^