MSDE FunClub 現在までのアクセスカウント数 最終更新日 : 2000/10/21
Microsoft Data Engine FunClub
Since 2000.10.21
SQLServer7.0/MSDE 完全トレーニングテキスト(下巻)
【第17章325p 〜 327p掲載】

-- [SQL17_10R.SQL]
--             SQLServer7.0  Transact-SQL言語
--             日本技術ソフト開発  堀川 明
--            http://www.horikawa.ne.jp/msde/
--
-- このSQLプログラムは、SQL17_10プログラムで作成した
-- バックアップから、次を復元します
--
--   (1)復旧作業を始める前のログを保存します
--   (2)データベースの復元
--   (3)ログの適用
--
-- [注意]
--   このプログラムの実行は db_owner または db_backupoperator
--   の権限が必要です
--

-- ( 件処理されました)のメッセージの表示を抑止します
    SET NOCOUNT ON
GO

--***************************************************
--      復旧を行う前にログのバックアップを取る
--       この中に3レコード分の情報があります
--***************************************************
    DECLARE @dbname    varchar(20)
    DECLARE @bkdvname  varchar(40)
  
    -- バックアップを行うデータベースの名前
    SELECT  @dbname   = 'MySampleTest'

    -- バックアップデバイスの名前
    SELECT  @bkdvname = 'MySampleTest_BackupDev'

    --ログを保存します
    BACKUP  LOG   @dbname        --ログのバックアップDBの名前
      TO    @bkdvname            --バックアップデバイス名
     WITH
           DESCRIPTION = '最終3レコード分のログです'
         , NO_TRUNCATE           --このオプションを忘れずに
                                 --書籍掲載プログラムでは抜けています 
GO

--*****************************************
--    【MySampleTestデータベースを削除】
--*****************************************
   IF EXISTS( SELECT name FROM master..sysdatabases
                 WHERE( name = 'MySampleTest' ) )
      BEGIN
             DROP  DATABASE  MySampleTest
      END
GO

--*****************************************
--         【データベースの復元】
--*****************************************
    DECLARE @dbname    varchar(20)
    DECLARE @bkdvname  varchar(40)

    -- バックアップを行うデータベースの名前
    SELECT  @dbname   = 'MySampleTest'

    -- バックアップデバイスの名前
    SELECT  @bkdvname = 'MySampleTest_BackupDev'

    --************************
    -- 完全データベースの復元
    --  ファイル番号1番です
    --************************
    RESTORE  DATABASE  @dbname   --復元したDBの名前
       FROM    @bkdvname         --バックアップデバイス
       WITH
             FILE = 1
           , NORECOVERY          --忘れずに!!

    --****************************
    -- トランザクションログの復元
    --   ファイル番号2番です
    --****************************
    RESTORE  LOG  @dbname        --ログを適用するDBの名前
       FROM    @bkdvname         --バックアップデバイス
       WITH
             FILE = 2
           , NORECOVERY          --忘れずに!!

    --****************************
    -- トランザクションログの復元
    --   ファイル番号3番です
    --****************************
    RESTORE  LOG  @dbname
       FROM    @bkdvname
       WITH
             FILE = 3
           , RECOVERY            --復元完了です
GO

--*******************
--  復元内容チェック
--*******************
    USE MySampleTest
    PRINT ''
    PRINT '社員コード10から20までです'
    SELECT 社員コード , 氏名  FROM  社員
            WHERE( 社員コード BETWEEN 10 AND 20 )

    --接続先を変えておきます
    USE master
GO
技術評論社の書籍ガイドへ
下巻:ISBN4-7741-0966-5

ウィンドウを閉じる


(株)日本技術ソフト開発 責任編集:堀川 明
MSDE FunClubに関するご意見・ご要望等ございましたら、 msdefun@horikawa.ne.jp までご連絡下さい。
HOME: http://www.horikawa.ne.jp/msde/


MSDE FunClubの運営は、マイクロソフト社とは一切の関係はありません