2つのデータベースがあり、1つはNatalie_playground
と呼ばれ、もう1つはLiveDB
と呼ばれます。挿入、更新を練習したいので、いくつかのテーブルをLiveDB
からNatalie_playground
にコピーします。
コピーするテーブルの名前はCustomers, Computers, Cellphones, Prices
です
私がやろうとしたことは、(SSMSを使用して)テーブルを右クリックすることですが、そこにはコピーがありません!
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
注:これを学習して練習したい場合は、以前のスクリプトを使用できますが、完全な構造とデータをデータベースから別のデータベースにコピーする場合は、「データベースのバックアップと復元」または「データを使用したスクリプトデータベースの生成」を使用する必要がありますこれを別のデータベースで実行します。
データベースを右クリックし、-タスクの下でスクリプトの生成を選択し、ウィザードに従ってテーブルを選択し、'スクリプトテーブルデータ'というチェックボックスをオンにします。(または同様の)SQLスクリプトに生成し、他のDBで実行します。
SQL Serverインポート/エクスポートウィザードを試すこともできます。ターゲットテーブルがまだ存在しない場合、ウィザードを実行すると作成されます。
詳細についてはMSDNをご覧ください http://msdn.Microsoft.com/en-us/library/ms141209.aspx
他のブログから簡単な方法を見つけました。これが役に立てば幸いです。
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
これを試して:
ターゲット表が存在する場合:
SELECT SourceTableAlias.*
INTO TargetDB.dbo.TargetTable
FROM SourceDB.dbo.SourceTable SourceTableAlias
ターゲットテーブルが存在しない場合:
INSERT INTO TargetDB.dbo.TargetTable
SELECT SourceTableAlias.*
FROM SourceDB.dbo.SourceTable SourceTableAlias
幸運を!
これを試して
USE TargetDatabase
GO
INSERT INTO dbo.TargetTable(field1, field2, field3)
SELECT field1, field2, field3
FROM SourceDatabase.dbo.SourceTable
WHERE (some condition)
テーブルのスキーマのみをコピーする場合は、上記のクエリの最後に偽条件を追加できます。
例.
SELECT table_A.FIELD_1, ..., table_A.FIELD_N
INTO LiveDB.custom_table
FROM Natalie_playground.dbo.custom_table table_A
WHERE 0 > 1