| MSDE FunClub |
|
最終更新日 : 2000/10/21 |
|
Microsoft Data Engine FunClub
|
Since 2000.10.21
|
|
SQLServer7.0/MSDE 完全トレーニングテキスト(下巻) |
|
【第17章321p 〜 323p掲載】 |
-- [SQL17_09R5.SQL]
-- SQLServer7.0 Transact-SQL言語
-- 日本技術ソフト開発 堀川 明
-- http://www.horikawa.ne.jp/msde/
--
-- このSQLプログラムは、SQL17_09プログラムで作成した
-- バックアップから、データベースを復元します
-- 復元方法:
-- 【完全1+ログ1+ログ2+ログ3】
--
-- [注意]
-- このプログラムの実行は db_owner または db_backupoperator
-- の権限が必要です
--
-- ( 件処理されました)のメッセージの表示を抑止します
SET NOCOUNT ON
GO
--*****************************************
-- 【MySampleTestデータベースを削除】
--*****************************************
IF EXISTS( SELECT name FROM master..sysdatabases
WHERE( name = 'MySampleTest' ) )
BEGIN
DROP DATABASE MySampleTest
END
GO
--*****************************************
-- 【データベースの復元】
-- 完全1+ログ1+ログ2+ログ3 による復旧
--*****************************************
DECLARE @dbname varchar(20)
DECLARE @bkdvname varchar(40)
-- バックアップを行うデータベースの名前
SELECT @dbname = 'MySampleTest'
-- バックアップデバイスの名前
SELECT @bkdvname = 'MySampleTest_BackupDev'
--**********************
-- 完全1の復元(File=1)
--**********************
RESTORE DATABASE @dbname --復元したDBの名前
FROM @bkdvname --バックアップデバイス
WITH
FILE = 1 --1番の読込
, NORECOVERY --忘れずに!!
--***********************
-- ログ1の復元(File=3)
--***********************
RESTORE LOG @dbname --ログを適用するDBの名前
FROM @bkdvname --バックアップデバイス
WITH
FILE = 3 --3番の読込
, NORECOVERY --忘れずに!!
--***********************
-- ログ2の復元(File=6)
--***********************
RESTORE LOG @dbname
FROM @bkdvname
WITH
FILE = 6 --6番の読込
, NORECOVERY --忘れずに!!
--**********************************
-- 最後のトランザクションログの復元
--**********************************
RESTORE LOG @dbname
FROM @bkdvname
WITH
FILE = 8 --8番の読込
, RECOVERY --復元完了
GO
--*******************
-- 復元内容チェック
--*******************
USE MySampleTest
PRINT ''
PRINT '社員コード10から20までです'
SELECT 社員コード , 氏名 FROM 社員
WHERE( 社員コード BETWEEN 10 AND 20 )
--他の復旧例題がすぐに実行できるように、接続先を変える
USE master
GO