次の方法で共有


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

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

このトピックの内容

はじめに

制限事項と制約事項

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

セキュリティ

アクセス許可

テーブルに対する 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 の使用

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

  1. 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