web-dev-qa-db-ja.com

SQL Serverあるデータベースから別のデータベースへのテーブルのコピー

2つのデータベースがあり、1つはNatalie_playgroundと呼ばれ、もう1つはLiveDBと呼ばれます。挿入、更新を練習したいので、いくつかのテーブルをLiveDBからNatalie_playgroundにコピーします。

コピーするテーブルの名前はCustomers, Computers, Cellphones, Pricesです

私がやろうとしたことは、(SSMSを使用して)テーブルを右クリックすることですが、そこにはコピーがありません!

8
Natalia Natalie

AとBなどの2つのデータベースがあると仮定します。

  • ターゲットテーブルが存在しない場合、次のスクリプトが作成されます(この方法はお勧めしません)。

    SELECT table_A.FIELD_1, table_A.FIELD_2,......, table_A.FIELD_N 
    INTO COPY_TABLE_HERE 
    FROM  A.dbo.table_from_A table_A
    
  • ターゲット表が存在する場合:

     INSERT INTO TABLE_TARGET 
     SELECT table_A.FIELD_1, table_A.FIELD_2,......, table_A.FIELD_N 
     FROM  A.dbo.table_from_A table_A
    

注:これを学習して練習したい場合は、以前のスクリプトを使用できますが、完全な構造とデータをデータベースから別のデータベースにコピーする場合は、「データベースのバックアップと復元」または「データを使用したスクリプトデータベースの生成」を使用する必要がありますこれを別のデータベースで実行します。

10
Gaston Flores

データベースを右クリックし、-タスクの下でスクリプトの生成を選択し、ウィザードに従ってテーブルを選択し、'スクリプトテーブルデータ'というチェックボックスをオンにします。(または同様の)SQLスクリプトに生成し、他のDBで実行します。

8
Ron.B.I

SQL Serverインポート/エクスポートウィザードを試すこともできます。ターゲットテーブルがまだ存在しない場合、ウィザードを実行すると作成されます。

詳細についてはMSDNをご覧ください http://msdn.Microsoft.com/en-us/library/ms141209.aspx

4
Timothy Walden

他のブログから簡単な方法を見つけました。これが役に立てば幸いです。

Select * into DestinationDB.dbo.tableName from SourceDB.dbo.SourceTable  

http://www.codeproject.com/Tips/664327/Copy-Table-Schema-and-Data-From-One-Database-to-An

2
Learner

これを試して:

ターゲット表が存在する場合:

SELECT SourceTableAlias.*
INTO TargetDB.dbo.TargetTable
FROM  SourceDB.dbo.SourceTable SourceTableAlias

ターゲットテーブルが存在しない場合:

 INSERT INTO TargetDB.dbo.TargetTable 
 SELECT SourceTableAlias.*
 FROM SourceDB.dbo.SourceTable SourceTableAlias

幸運を!

1
jamshid

これを試して

USE TargetDatabase
GO

INSERT INTO dbo.TargetTable(field1, field2, field3)
SELECT field1, field2, field3
FROM SourceDatabase.dbo.SourceTable
WHERE (some condition)
0

テーブルのスキーマのみをコピーする場合は、上記のクエリの最後に偽条件を追加できます。

例.

SELECT table_A.FIELD_1, ..., table_A.FIELD_N 
INTO LiveDB.custom_table
FROM  Natalie_playground.dbo.custom_table table_A
WHERE 0 > 1
0
Emad Armoun