MSDE FunClub | 最終更新日 : 2000/10/06 | |
Microsoft Data Engine FunClub |
|
|
SQLServer7.0/MSDE 完全トレーニングテキスト(下巻) | ||
【第17章279p 〜 280p掲載】 |
-- [SQL17_05.SQL] -- SQLServer7.0 Transact-SQL言語 -- 日本技術ソフト開発 堀川 明 -- http://www.horikawa.ne.jp/msde/ -- -- このSQLプログラムは、 -- MySampleTestデータベースのコピーを作成します -- バックアップ用メディアにDISKファイルを使います -- -- [注意] -- このプログラムの実行は db_owner または db_backupoperator -- の権限が必要です -- -- ( 件処理されました)のメッセージの表示を抑止します SET NOCOUNT ON GO DECLARE @ret int DECLARE @dbname varchar(20) DECLARE @dbname2 varchar(20) DECLARE @bkfname varchar(80) PRINT '' -- バックアップを行うデータベースの名前 SELECT @dbname = 'MySampleTest' -- 書き込み先/読み込み先のDISKのファイル名 SELECT @bkfname = 'D:\backup7\MySampleTest.DAT' --コピーの復元先データベースの名前 SELECT @dbname2 = 'MySampleCopy' --************************************* -- 【完全バックアップの実行】 -- INITオプションにより上書き新規作成 --************************************* BACKUP DATABASE @dbname --バックアップDBの名前 TO DISK = @bkfname --保存先ファイル名 WITH INIT --ファイル番号1番で保存 --************************************** -- 【データベースのコピー(復元)操作】 --************************************** EXEC @ret = InUse @dbname2 IF( @ret = 1 ) BEGIN RAISERROR('%s は現在使用中です。RESTORE命令は中止しました',0,127,@dbname2) RETURN END PRINT '' PRINT 'コピー(' + @dbname2 + ')を作成します' RESTORE DATABASE @dbname2 --復元したDBの名前 FROM DISK = @bkfname --保存先ファイル名 WITH REPLACE --同じ名前のDBがあれば、既存を削除 --論理ファイル名はあらかじめ調査 , MOVE 'MySampleTest_Data' TO 'd:\test\MySampleCopy.mdf' , MOVE 'MySampleTest_Log' TO 'd:\test\MySampleCopy.ldf' GO