対象者: SQL Server 2016 (13.x) および以降のバージョン
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Database in Microsoft Fabric
このトピックでは、SQL Server で、SQL Server Management Studio または Transact-SQL を使用して、列の定義のみ、または定義とデータの両方をコピーすることで、あるテーブルから別のテーブルに列をコピーする方法について説明します。
このトピックの内容
作業を開始する準備:
列をコピーする方法:
はじめに
制限事項と制約事項
別名データ型の列をデータベース間でコピーする場合、コピー先のデータベースで同じ別名データ型を使用できない場合があります。 その場合、コピー先データベースで使用できる基本データ型の中で最も近いデータ型がその列に割り当てられます。
セキュリティ
Permissions
テーブルに対する ALTER 権限が必要です。
SQL Server Management Studio を使用する
テーブル間で列の定義をコピーするには
コピーする列を含むテーブルおよびコピー先のテーブルを右クリックして [デザイン]をクリックし、それらのテーブルを開きます。
コピーする列を含むテーブルのタブをクリックして、コピーする列を選択します。
[編集] メニューの [コピー]をクリックします。
列をコピーする先のテーブルのタブをクリックします。
コピーした列を挿入する列を選択し、 [編集] メニューの [貼り付け]をクリックします。
テーブル間でデータをコピーするには
前述の列定義のコピーの指示に従います。
Note
テーブル間でデータのコピーを始める前に、コピー先の列のデータ型が、コピー元の列のデータ型と互換性があることを確認してください。
新しいクエリ エディター ウィンドウを開きます。
クエリ エディターを右クリックし、 [エディターでクエリをデザイン]をクリックします。
[テーブルの追加] ダイアログ ボックスで、コピー元テーブルとコピー先テーブルを選択し、 [追加]をクリックして [テーブルの追加] ダイアログ ボックスを閉じます。
クエリ エディターの空いている領域を右クリックし、[変更の種類] をポイントして [結果の挿入] をクリックします。
[結果の挿入先テーブルの選択] ダイアログ ボックスで、コピー先テーブルを選択します。
クエリ デザイナーの上部で、コピー元テーブル内のコピー元列をクリックします。
これで、クエリ デザイナーで INSERT クエリが作成されました。 [OK] をクリックして、クエリを元のクエリ エディター ウィンドウに配置します。
クエリを実行して、コピー元テーブルからコピー先テーブルにデータを挿入します。
Transact-SQL の使用
テーブル間で列の定義をコピーするには
- Transact-SQL ステートメントを使用して、個々の列をあるテーブルから別の既存のテーブルにコピーすることはできません。 ただし、SELECT INTO を使用して、既定のファイル グループに新しいテーブルを作成し、クエリの結果得られた行をそのテーブルに挿入することができます。 詳細については、「INTO 句 (Transact-SQL)」を参照してください。
テーブル間でデータをコピーするには
オブジェクト エクスプローラーで、 データベース エンジンのインスタンスに接続します。
[標準] ツール バーの [新しいクエリ] をクリックします。
次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] をクリックします。
USE AdventureWorks2022; 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