次の方法で共有


データベースのデタッチ

このトピックでは、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 つ以上ある場合、[状態] は [準備ができていません] になり、[メッセージ] 列に [アクティブな接続] number_of_active_connections>表示されます< (たとえば、アクティブな接続が 1 つ)。 データベースをデタッチするには、 [接続の削除] を選択してアクティブな接続を切断する必要があります。

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

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

注意

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

Transact-SQL の使用

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

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

  2. [標準] ツール バーの [新しいクエリ] をクリックします。

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

EXEC sp_detach_db 'AdventureWorks2012', 'true';  

参照

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