| MSDE FunClub |
|
最終更新日 : 2000/10/06 |
|
Microsoft Data Engine FunClub
|
Since 2000.10.06
|
|
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