SQL Serverで.bakファイルをデータベースにインポートする方法

2024-04-02

SQL Serverで.bakファイルをデータベースにインポートする方法

SQL Server Management Studio (SSMS)を使用する

これは、最も簡単で直感的な方法です。

  1. SSMSを起動し、対象となるSQL Serverインスタンスに接続します。
  2. オブジェクトエクスプローラーで、データベースフォルダを展開します。
  3. データベースフォルダ上で右クリックし、データベースの復元を選択します。
  4. データベースの復元ダイアログボックスで、ソースタブを選択します。
  5. デバイスからオプションを選択し、追加ボタンをクリックします。
  6. インポートする.bakファイルを選択し、OKボタンをクリックします。
  7. オプションタブを選択します。
  8. 必要に応じて、復元オプションを選択します。
  9. OKボタンをクリックします。

RESTORE DATABASEステートメントを使用する

これは、T-SQLを使用してコマンドラインから.bakファイルをインポートする方法です。

  1. SQL Server Management Studio (SSMS)を起動し、対象となるSQL Serverインスタンスに接続します。
  2. 新しいクエリウィンドウを開きます。
  3. 以下のT-SQLステートメントを実行します。
RESTORE DATABASE database_name
FROM DATABASE_FILE = 'file_path'

パラメータ

  • database_name: インポートするデータベースの名前
  • file_path: .bakファイルのパス

RESTORE DATABASE MyDatabase
FROM DATABASE_FILE = 'C:\MyDatabase.bak'

Transact-SQLスクリプトを使用する

  1. テキストエディタで新しいファイルを作成します。
RESTORE DATABASE database_name
FROM DATABASE_FILE = 'file_path'
RESTORE DATABASE MyDatabase
FROM DATABASE_FILE = 'C:\MyDatabase.bak'
  1. ファイルを.sql拡張子で保存します。
  2. SSMSでクエリウィンドウを開き、作成したスクリプトを実行します。

注意事項

  • .bakファイルをインポートする前に、データベースが復元可能であることを確認する必要があります。
  • .bakファイルをインポートすると、既存のデータベースが上書きされます。
  • .bakファイルを別のサーバーにインポートする場合は、データベースファイルとログファイルのパスを修正する必要があります。

補足

  • 上記の方法はいずれも、フルバックアップファイル(.bak)のみをインポートするものです。
  • 差分バックアップファイル(.diff)やトランザクションログバックアップファイル(.trn)をインポートするには、RESTORE DATABASEステートメントを使用する必要があります。
  • 詳細については、Microsoft Docsのドキュメントを参照してください。



SQL Serverで.bakファイルをデータベースにインポートするサンプルコード

SSMSを使用して.bakファイルをインポートするには、以下の手順に従います。

コード例

-- SSMSを使用して.bakファイルをインポートする

-- オブジェクトエクスプローラーでデータベースフォルダを展開
ObjectExplorer.ExpandDatabases()

-- データベースフォルダ上で右クリックし、データベースの復元を選択
Databases.RestoreDatabase()

-- ソースタブでデバイスからオプションを選択
RestoreDatabase.Source.Device()

-- インポートする.bakファイルを選択
RestoreDatabase.Source.AddFile("C:\MyDatabase.bak")

-- オプションタブで復元オプションを選択
RestoreDatabase.Options.RecoveryModel(RecoveryModel.Full)

-- OKボタンをクリックして復元を開始
RestoreDatabase.Start()

RESTORE DATABASEステートメントを使用して.bakファイルをインポートするには、以下のT-SQLステートメントを実行します。

RESTORE DATABASE database_name
FROM DATABASE_FILE = 'file_path'
-- RESTORE DATABASEステートメントを使用して.bakファイルをインポートする

DECLARE @database_name NVARCHAR(128)
DECLARE @file_path NVARCHAR(256)

SET @database_name = 'MyDatabase'
SET @file_path = 'C:\MyDatabase.bak'

RESTORE DATABASE @database_name
FROM DATABASE_FILE = @file_path
RESTORE DATABASE database_name
FROM DATABASE_FILE = 'file_path'
-- Transact-SQLスクリプトを使用して.bakファイルをインポートする

USE master
GO

RESTORE DATABASE MyDatabase
FROM DATABASE_FILE = 'C:\MyDatabase.bak'
GO



SQL Serverで.bakファイルをデータベースにインポートするその他の方法

概要

データベース エンジン サービスの復元を使用して、データベースを別のサーバーに復元できます。

手順

  1. データベース エンジン サービスの復元 オプションを選択し、追加 ボタンをクリックします。
  2. 復元するデータベースを選択し、OK ボタンをクリックします。

T-SQL コマンドを使用する

RESTORE DATABASE ステートメントを使用して、データベースを別のサーバーに復元できます。

RESTORE DATABASE database_name
FROM DATABASE_FILE = 'file_path'
RESTORE DATABASE MyDatabase
FROM DATABASE_FILE = 'C:\MyDatabase.bak'

サードパーティ製ツールを使用する

ツール

  • ApexSQL Restore
  • Redgate SQL Backup
  • Idera SQL Backup Pro
  • サードパーティ製ツールを使用する前に、ツールのドキュメントをよく読んでください。
  • サードパーティ製ツールは、SQL Server のバージョンと互換性があることを確認してください。

その他の方法

  • バックアップと復元ウィザードを使用する

sql-server database-restore


CONST、SET、DECLARE LOCAL、#variable、PARAMETER:T-SQLにおける定数変数の作り方

CONST キーワードを使用して、変数をローカル変数として定義し、その変数に値を代入することができます。この方法で定義された変数は、そのスコープ内でのみ使用でき、一度代入された値を変更することはできません。SET ステートメントを使用して、変数に値を代入することができます。SET ステートメントで代入された変数は、ローカル変数として扱われます。...


SSMS、T-SQL、PowerShell… あなたに合った方法でデータベースリストを取得しよう!

SQL Server Management Studio (SSMS) は、SQL Server を管理するための無料ツールです。SSMS を使用してデータベースのリストを取得するには、以下の手順を実行します。SSMS を起動し、SQL Server インスタンスに接続します。...


Entity Frameworkで出力パラメータを持つストアドプロシージャを簡単に実行

SQL Server Management Studio (SSMS) を開きます。対象となるデータベースに接続します。オブジェクトエクスプローラーで ストアドプロシージャ フォルダを展開します。右クリックして 新しいストアドプロシージャ を選択します。...


INSERT EXECステートメントを使用したIDENTITYカラムへの値挿入

An explicit value for the identity column in table can only be specified when a column list is used and IDENTITY_INSERT is ON...


SqlConnectionStringBuilderを使って接続文字列を動的に構築する

App. configファイルを使用するこれは、最も簡単で一般的な方法です。App. configファイルに接続文字列を保存し、コードから読み込みます。手順コードから接続文字列を読み込みます。SqlConnectionStringBuilderクラスを使用して、接続文字列を動的に構築できます。...