SQL Server Management Studio (SSMS) を使用して別のデータベースからテーブルをコピーする方法
SQL Server で別のデータベースからテーブルをコピーする方法
方法 1: SELECT INTO ステートメントを使用する
SELECT INTO
ステートメントを使用すると、既存のテーブルからデータを新しいテーブルに簡単にコピーできます。 構文は次のとおりです。
SELECT *
INTO TargetDatabase.TargetTable
FROM SourceDatabase.SourceTable;
この例では、SourceDatabase.SourceTable
テーブルのすべてのデータが TargetDatabase.TargetTable
テーブルにコピーされます。
方法 2: SSMS を使用する
SQL Server Management Studio (SSMS) を使用すると、グラフィカル インターフェイスで簡単にテーブルをコピーできます。 手順は次のとおりです。
- SSMS で、コピー元のデータベースとコピー先のデータベースに接続します。
- コピー元のデータベースをツリービューで展開し、コピーするテーブルを右クリックします。
- メニューから [スクリプトの生成] > [CREATE TABLE] を選択します。
- [スクリプトの生成] ダイアログ ボックスで、必要なオプションを選択し、[スクリプトの生成] をクリックします。
- 生成されたスクリプトをコピーします。
- SSMS で、コピー先のデータベースに接続し、クエリ エディタを開きます。
- 生成されたスクリプトをクエリ エディタに貼り付け、[実行] をクリックします。
その他の注意事項
- コピーするテーブルに主键がある場合は、
SELECT INTO
ステートメントでWITH (IDENTITY_INSERT = ON)
オプションを使用する必要があります。 - 大量のデータをコピーする場合は、
bcp
ユーティリティを使用する方が効率的な場合があります。
SQL Server で別のデータベースからテーブルをコピーするサンプルコード
SELECT INTO ステートメントを使用する
-- ソース データベースとテーブルの名前
FROM AdventureWorks.Sales.Orders
-- ターゲット データベースとテーブルの名前
INTO TargetDatabase.dbo.Orders;
この例では、AdventureWorks
データベースの Sales.Orders
テーブルのすべてのデータが TargetDatabase
データベースの dbo.Orders
テーブルにコピーされます。
SSMS を使用する
- [スクリプトの生成] ダイアログ ボックスで、次のオプションを選択します。
- [オプション] タブで、[すべてのオブジェクトを含める] チェックボックスをオンにします。
- [詳細設定] タブで、[スクリプトに挿入] > [データ] チェックボックスをオンにします。
- [スクリプトの生成] をクリックします。
この方法により、テーブルの構造とデータがコピー先のデータベースに作成されます。
注: これらの例は基本的なものです。 実際の状況では、コピーするテーブルのスキーマやデータ量に応じて、コードを調整する必要がある場合があります。
SQL Server で別のデータベースからテーブルをコピーするその他の方法
bcp
ユーティリティは、コマンド ライン ツールを使用して SQL Server データベース間でデータをエクスポートおよびインポートするためのものです。 大量のデータをコピーする場合に便利です。
-- ソース データベースとテーブルの名前
bcp AdventureWorks.Sales.Orders OUT .\orders.dat -T -c
-- ターゲット データベースとテーブルの名前
bcp TargetDatabase.dbo.Orders IN .\orders.dat -T -c
Transact-SQL バックアップと復元を使用して、データベース全体をコピーすることもできます。 ただし、この方法は時間がかかり、効率的ではないため、通常は少量のデータをコピーする場合にのみ使用されます。
サードパーティ製のツールを使用する
SQL Server データベース間でデータをコピーするのに役立つサードパーティ製のツールがいくつかあります。 これらのツールは、使いやすく、追加機能を提供する場合があります。
最適な方法の選択
使用する方法は、コピーするデータの量、ネットワーク速度、必要な機能によって異なります。
sql sql-server copy