MSDE FunClub | 最終更新日 : 2000/10/21 | |
Microsoft Data Engine FunClub |
|
|
SQLServer7.0/MSDE 完全トレーニングテキスト(下巻) | ||
【第17章331p 〜 333p掲載】 |
-- [SQL17_11R.SQL] -- SQLServer7.0 Transact-SQL言語 -- 日本技術ソフト開発 堀川 明 -- http://www.horikawa.ne.jp/msde/ -- -- このSQLプログラムは、SQL17_11プログラムで作成した -- バックアップから、次を復元します -- -- (1)MySampleTestデータベースの完全データベースバック -- の復元 -- (2)トランザクションログを利用して、指定された時刻の状態 -- -- [注意] -- このプログラムの実行は 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 --***************************************** -- 【データベースの復元】 --***************************************** DECLARE @dbname varchar(20) DECLARE @bkdvname varchar(40) DECLARE @pt int DECLARE @rt datetime --復元位置(=1,2,3) --この時刻にデータベースの状態を復帰させます SELECT @pt = 3 -- 復元を行う日付け時刻の設定 -- グローバルテーブルからその値を取得する SELECT @rt = time FROM ##EndOfExecTime WHERE( POINT_NO = @pt ) -- バックアップを行うデータベースの名前 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 , STOPAT = @rt --復元時間 GO --******************* -- 復元内容チェック --******************* USE MySampleTest PRINT '' PRINT 'POINT-1 :社員コード10から13までです' PRINT 'POINT-2,3:社員コード10から17までです' SELECT 社員コード , 氏名 FROM 社員 WHERE( 社員コード BETWEEN 10 AND 20 ) --POINT-1と2では、[TEST]テーブルは存在しません IF EXISTS( SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE( (TABLE_NAME='TEST') AND (TABLE_TYPE='BASE TABLE')) ) BEGIN SELECT * FROM TEST END ELSE BEGIN PRINT '[TEST]テーブルは存在しません' END --接続先変更 USE master GO