次の方法で共有


データベース ファイルを SQL Server Express にアタッチする方法

sqlcmd ツールを使用することにより、SQL Server 2005 Express Edition (SQL Server Express) のインスタンスにデータベース ファイルをアタッチできます。たとえば、以前にインストールした SQL Server Express の既存のデータベース ファイルがある場合、それらのファイルを新しくインストールした SQL Server Express にアタッチできます。同様に、破損したデータベースをバックアップ コピーから復元する場合、バックアップされているデータベース ファイルをアタッチすることができます。

セキュリティに関する注意セキュリティに関する注意

不明なソースや信頼されていないソースからのデータベースは、アタッチまたは復元しないことをお勧めします。そのようなデータベースには、意図しない Transact-SQL コードを実行したり、スキーマまたは物理データベース構造を変更することによりエラーを発生させる悪意のあるコードが含まれている可能性があるからです。データベースの取得元が不明または信頼されていない場合は、事前に運用サーバー以外のサーバーで、そのデータベースに対して DBCC CHECKDB を実行してください。さらに、ストアド プロシージャやその他のユーザー定義コードなど、データベースのコードを調べてください。

データベース ファイルをアタッチするには

  1. サーバーでコマンド プロンプトを開きます。

  2. コマンド プロンプトから、次の sqlcmd コマンドを使用して SQL Server のインスタンスに接続します。

    sqlcmd -S Server\Instance
    

    Server はコンピューターの名前、Instance はインスタンスの名前です。

  3. 接続したら、次のコマンドを入力します。

    USE [master]
    GO
    CREATE DATABASE [database_name] ON 
    ( FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data\<database name>.mdf' ),
    ( FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data\<database name>.ldf' )
     FOR ATTACH ;
    GO
    

    database_name はアタッチするデータベースの名前を表し、FILENAME はデータベース ファイルとログ ファイルのパスとファイル名を表します。FOR ATTACH では、既存のオペレーティング システム ファイルのセットをアタッチすることにより、データベースを作成するように指定します。

  4. データベースがアタッチされたことを確認するには、次の 2 つのコマンドを入力します。

    select name from sys.databases
    go
    
  5. sqlcmd ツールにより、SQL Server Express のこのインスタンスにアタッチされたすべてのデータベースの名前が表示されます。この一覧には、手順 3. で指定したデータベース名が含まれています。

注意

データベースのアタッチの詳細については、「データベースのデタッチとアタッチ」および、SQL Server オンライン ブックの「CREATE DATABASE (Transact-SQL)」を参照してください。