SQL Server Management Studio (SSMS) を使用して別のデータベースからテーブルをコピーする方法

2024-04-05

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) を使用すると、グラフィカル インターフェイスで簡単にテーブルをコピーできます。 手順は次のとおりです。

  1. SSMS で、コピー元のデータベースとコピー先のデータベースに接続します。
  2. コピー元のデータベースをツリービューで展開し、コピーするテーブルを右クリックします。
  3. メニューから [スクリプトの生成] > [CREATE TABLE] を選択します。
  4. [スクリプトの生成] ダイアログ ボックスで、必要なオプションを選択し、[スクリプトの生成] をクリックします。
  5. 生成されたスクリプトをコピーします。
  6. SSMS で、コピー先のデータベースに接続し、クエリ エディタを開きます。
  7. 生成されたスクリプトをクエリ エディタに貼り付け、[実行] をクリックします。

その他の注意事項

  • コピーするテーブルに主键がある場合は、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 を使用する

  1. [スクリプトの生成] ダイアログ ボックスで、次のオプションを選択します。
    • [オプション] タブで、[すべてのオブジェクトを含める] チェックボックスをオンにします。
    • [詳細設定] タブで、[スクリプトに挿入] > [データ] チェックボックスをオンにします。
  2. [スクリプトの生成] をクリックします。

この方法により、テーブルの構造とデータがコピー先のデータベースに作成されます。

注: これらの例は基本的なものです。 実際の状況では、コピーするテーブルのスキーマやデータ量に応じて、コードを調整する必要がある場合があります。




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


データベース設計:リビジョン管理で失敗しないための3つのポイント

リビジョン管理は、データの変更履歴を追跡し、過去のバージョンに戻せるようにする重要な機能です。多くの分野で、ドキュメント、ソフトウェアコード、製品設計など、様々なデータのリビジョン管理が求められます。データベースにおいて、リビジョン管理を効率的に実現するには、適切なデータベース設計が重要です。ここでは、リビジョン管理のためのデータベース設計について、以下の3つのポイントを中心に解説します。...


T-SQL コーディングプロセスを改善するための SSMS の機能

SQL Server Management Studio (SSMS) は、Microsoft SQL Server データベースを管理するための統合ツールです。T-SQL コードの編集、実行、デバッグなど、さまざまな機能を提供します。このドキュメントでは、SSMS を使用して T-SQL コーディングプロセスを改善するためのヒントを紹介します。...


SQL Serverで「CREATE OR REPLACE VIEW」をエミュレートする方法: MERGE 構文を使用して既存のビューを更新または作成する

Oracleデータベースでは、既存のビューを置き換えるために CREATE OR REPLACE VIEW 構文を使用できます。一方、SQL Serverにはこの構文が存在せず、既存のビューを置き換えるには、いくつかの代替手段を用いる必要があります。...


PostgreSQLでGROUP BY句と集計関数を使用して1つの列の複数の結果行を1つに連結し、別の列でグループ化する際の注意点

例題:顧客テーブル customers があり、以下の列があります。customer_id: 顧客IDname: 顧客名city: 顧客の居住都市各都市に住む顧客の名前をカンマ区切りで連結したリストを取得したいと考えています。方法1:GROUP BY 句と STRING_AGG 関数を使用する...


「TCP/IP 接続 to host failed」エラーはもう怖くない!JavaでSQL Server接続のトラブルシューティング完全ガイド

「JDBC 接続が失敗しました。ホストへの TCP/IP 接続が失敗しました。」というエラーは、Java プログラムが SQL Server データベースに接続できないことを示しています。この問題は、以下のいずれかの原因が考えられます。誤った接続情報:大文字と小文字の区別にも注意してください。...