SQL SERVER の Transact-SQL にて、データーベースのバックアップを簡単に取る方法を記載します。
  
USE データーベース名; 
BACKUP DATABASE データーベース名 TO DISK = 'ファイルパス' WITH NAME = '任意の名称';
  
とします。例えば、
  
USE master; 
BACKUP DATABASE master TO DISK = 'Z:\SQLBACKUP\masterdb.sqlbak' WITH NAME = 'masterdb';
  
のようにします。
  
バックアップされたファイルをリストア(復元)するには、
  
RESTORE DATABASE データーベース名 FROM DISK = 'ファイルパス';
  
のようにします。上書きする場合は、
  
RESTORE DATABASE データーベース名 FROM DISK = 'ファイルパス' WITH REPLACE;
  
とします。
  
データーベース名に空白文字が含まれる場合は、[ ] で囲みます。 
DB 1 というデーターベースの場合、
  
USE [DB 1]; 
BACKUP DATABASE [DB 1] TO DISK = 'Z:\SQLBACKUP\masterdb.sqlbak' WITH NAME = 'masterdb';
  
のようにします。更に、データーベース名に元々 [ や ]  が含まれる場合は、名称中の ] を二重にします。 
DB [1] というデーターベースの場合、
  
USE [DB [1]]]; 
BACKUP DATABASE [DB [1]]] TO DISK = 'Z:\SQLBACKUP\masterdb.sqlbak' WITH NAME = 'masterdb';
  
とします。
  
バッチファイルにて実行する場合は、上記のスクリプトを任意のファイル名にて 
テキストファイルとして保存し、
  
SQLCMD -S サーバー名 -U ユーザー名 -P パスワード -i スクリプトファイル名
  
とします。例えば、
  
SQLCMD -S localhost\SQLSV,1433 -U sa -P 3h3x#drz -i "C:\sql\backupscript01.txt"
  
のようにします。
  
因みに、データーベースの一覧を得るには、 
select name from sys.databases 
というクエリを実行します。
  
以上で、説明は終了です。 
 |