次の方法で共有


テーブル間での列のコピー (データベース エンジン)

このトピックでは、SQL Server Management Studio または Transact-SQL を使用して、SQL Server 2012 で列の定義のみ、または定義とデータの両方をコピーすることで、あるテーブルから別のテーブルに列をコピーする方法について説明します。

このトピックの内容

  • 作業を開始する準備:

    制限事項と制約事項

    セキュリティ

  • 列をコピーする方法:

    SQL Server Management Studio

    Transact-SQL

作業を開始する準備

制限事項と制約事項

別名データ型の列をデータベース間でコピーする場合、コピー先のデータベースで同じ別名データ型を使用できない場合があります。 その場合、コピー先データベースで使用できる基本データ型の中で最も近いデータ型がその列に割り当てられます。

セキュリティ

権限

テーブルに対する ALTER 権限が必要です。

[トップに戻る] リンクで使用される矢印アイコン[先頭に戻る]

SQL Server Management Studio の使用

テーブル間で列の定義をコピーするには

  1. コピーする列を含むテーブルおよびコピー先のテーブルを右クリックして [デザイン] をクリックし、それらのテーブルを開きます。

  2. コピーする列を含むテーブルのタブをクリックして、コピーする列を選択します。

  3. [編集] メニューの [コピー] をクリックします。

  4. 列をコピーする先のテーブルのタブをクリックします。

  5. コピーした列を挿入する列を選択し、[編集] メニューの [貼り付け] をクリックします。

テーブル間でデータをコピーするには

  1. 前述の列定義のコピーの指示に従います。

    注意

    テーブル間でデータのコピーを始める前に、コピー先の列のデータ型が、コピー元の列のデータ型と互換性があることを確認してください。

  2. オブジェクト エクスプローラーで、[ビュー] ノードをクリックし、[新しいビュー] をクリックします。

  3. [クエリ デザイナー] メニューの [クエリ タイプの変更] をポイントし、[結果の挿入] をクリックします。

  4. [挿入先のテーブル選択] ダイアログ ボックスで、データのコピー先のテーブルを選択し、[OK] をクリックします。

    テーブル内で行をコピーする場合は、コピー先テーブルと同じコピー元テーブルを追加します。

    注意

    [クエリ デザイナー] は、更新できるテーブルおよびビューを事前に判別できません。 そのため、[挿入先のテーブル選択] ダイアログ ボックスのテーブルのボックスには、クエリを実行するデータ接続で使用できるテーブルおよびビューがすべて表示されます。行をコピーできないテーブルおよびビューも表示されます。

  5. ダイアグラム ペインの本体を右クリックし、ショートカット メニューの [テーブルの追加] をクリックします。

  6. [テーブルの追加] ダイアログ ボックスで、データのコピー元の各テーブルを選択し、[追加] をクリックし、[閉じる] をクリックします。

    テーブルが省略形でダイアグラム ペインに表示されます。

  7. 省略形のテーブルで、データのコピー元の列のボックスをオンにします。

  8. 抽出条件ペインの [追加] 列で、各コピー先の列に対してデータのコピー元の列を選択します。

  9. 抽出条件ペインに検索条件を入力して、コピーする行を指定します。 詳細については、「検索条件の指定 (Visual Database Tools)」を参照してください。

    検索条件を指定しない場合は、コピー元テーブルのすべての行がコピー先テーブルにコピーされます。

  10. 集計情報をコピーする場合は、[グループ化] を指定します。 詳細については、「テーブルにあるすべての行の値の要約または集計 (Visual Database Tools)」を参照してください。

  11. [SQL の実行] ボタンをクリックしてクエリを実行します。

    結果の挿入クエリを実行しても、結果ペインに結果は表示されません。 代わりに、コピーされた行数を示すメッセージが表示されます。

[トップに戻る] リンクで使用される矢印アイコン[先頭に戻る]

Transact-SQL の使用

テーブル間で列の定義をコピーするには

  • Transact-SQL ステートメントを使用して、個々の列をあるテーブルから別の既存のテーブルにコピーすることはできません。 ただし、SELECT INTO を使用して、既定のファイル グループに新しいテーブルを作成し、クエリの結果得られた行をそのテーブルに挿入することができます。 詳細については、「INTO 句 (Transact-SQL)」を参照してください。

テーブル間でデータをコピーするには

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

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

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、[実行] をクリックします

    USE AdventureWorks2012;
    GO
    CREATE TABLE dbo.EmployeeSales
    ( BusinessEntityID   varchar(11) NOT NULL,
      SalesYTD money NOT NULL
    );
    GO
    INSERT INTO dbo.EmployeeSales
        SELECT BusinessEntityID, SalesYTD 
        FROM Sales.SalesPerson;
    GO
    

[トップに戻る] リンクで使用される矢印アイコン[先頭に戻る]