| 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
 というクエリを実行します。
 
 以上で、説明は終了です。
 
 |