次の方法で共有


データベースをデタッチする

このトピックでは、SQL Server Management Studio または Transact-SQL を使用して SQL Server 2014 のデータベースをデタッチする方法について説明します。 デタッチされたファイルは残り、FOR ATTACH または FOR ATTACH_REBUILD_LOG オプションを指定して CREATE DATABASE を使用して再アタッチできます。 ファイルは別のサーバーに移動してそこに接続できます。

このトピックについて

開始する前に

制限事項と制約条件

制限事項と制限事項の一覧については、「 データベースのデタッチとアタッチ (SQL Server)」を参照してください。

安全

権限

データベース内の固定ロールであるdb_ownerのメンバーシップが必要です。

SQL Server Management Studio の使用

データベースをデタッチするには

  1. SQL Server Management Studio オブジェクト エクスプローラーで、SQL Server データベース エンジンのインスタンスに接続し、インスタンスを展開します。

  2. [ データベース] を展開し、デタッチするユーザー データベースの名前を選択します。

  3. データベース名を右クリックし、[ タスク] をポイントして、[ デタッチ] をクリックします。 [ データベースのデタッチ ] ダイアログ ボックスが表示されます。

    [デタッチするデータベース]
    デタッチするデータベースを一覧表示します。

    データベース名
    デタッチするデータベースの名前を表示します。

    [接続の削除]
    指定したデータベースへの接続を切断します。

    アクティブな接続があるデータベースをデタッチすることはできません。

    統計の更新
    既定では、データベースをデタッチしても、古い最適化統計情報が保持されます。既存の最適化統計情報を更新するには、このチェック ボックスをオンにします。

    [フルテキスト カタログの保持]
    既定では、デタッチ操作を行っても、データベースに関連付けられたフルテキスト カタログが保持されます。 これらのカタログを削除するには、 [フルテキスト カタログの保持] チェック ボックスをオフにします。 このオプションは、SQL Server 2005 からデータベースをアップグレードする場合にのみ表示されます。

    地位
    [準備完了] または [準備ができていません]のどちらかの状態を表示します。

    メッセージ
    [メッセージ] 列に、次のようにデータベースに関する情報が表示される場合があります:

    • データベースがレプリケーションに含まれている場合、 [状態][準備ができていません] になり、 [メッセージ] 列に [データベースがレプリケートされました]と表示されます。

    • データベースに1つ以上のアクティブな接続がある場合、状態Not ready(準備完了ではなく)となり、Message(メッセージ列には<number_of_active_connections>Active connection(s)例: 1 Active connection(s)と表示されます。 データベースをデタッチするには、 [接続の削除]を選択してアクティブな接続を切断する必要があります。

    メッセージについてより詳しい情報を得るには、ハイパーリンクのテキストをクリックして利用状況モニターを開きます。

  4. データベースをデタッチする準備ができたら、[ OK] をクリックします。

新しくデタッチされたデータベースは、ビューが更新されるまでオブジェクト エクスプローラーの [ データベース ] ノードに表示されます。 ビューはいつでも更新できます。[オブジェクト エクスプローラー] ウィンドウをクリックし、メニュー バーから [ 表示 ] を選択し、[ 最新の情報に更新] を選択します。

Transact-SQL の使用

データベースをデタッチするには

  1. データベース エンジンに接続します。

  2. [標準] バーから、新しいクエリをクリックします。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] をクリックします。 次の使用例は、skipchecks を true に設定して AdventureWorks2012 データベースをデタッチします。

EXEC sp_detach_db 'AdventureWorks2012', 'true';  

こちらもご覧ください

データベースのデタッチとアタッチ (SQL Server)
sp_detach_db (Transact-SQL)