回答:
SQL Serverでは?と同じデータベースサーバー上で?3部構成の名前を使用します。
INSERT INTO bar..tblFoobar( *fieldlist* )
SELECT *fieldlist* FROM foo..tblFoobar
これはデータを移動するだけです。テーブル定義(および権限やインデックスなどの他の属性)を移動する場合は、別のことを行う必要があります。
SQL Server Management Studioの「データのインポート」タスク(DB名を右クリックしてからタスク)は、これのほとんどを行います。データをコピーするデータベースから実行します。
テーブルが存在しない場合は作成されますが、おそらくインデックスなどを再作成する必要があります。テーブルが存在する場合は、デフォルトで新しいデータが追加されますが、それを調整して(マッピングを編集)、既存のデータをすべて削除できます。
私はいつもこれを使っており、かなりうまくいきます。
WHERE
データのインポートタスクを使用して条件を指定することはできますか?私はそうする方法を見つけることができませんでした。
これはうまくいくはずです:
SELECT *
INTO DestinationDB..MyDestinationTable
FROM SourceDB..MySourceTable
制約、デフォルト、またはインデックスはコピーされません。作成されたテーブルには、クラスター化インデックスがありません。
別の方法として:
INSERT INTO DestinationDB..MyDestinationTable
SELECT * FROM SourceDB..MySourceTable
宛先テーブルが存在し、空の場合。
INSERT INTO...
)はOracleで私に役立ちました。
テーブルが1つだけの場合、必要なのは
考慮しなければならないことの1つは、将来他のオブジェクトを移行するなどの他の更新です。ソーステーブルと宛先テーブルの名前が同じではないことに注意してください。つまり、ビュー、ストアドプロシージャなどの依存オブジェクトがある場合は、変更を加える必要があります。
問題がなければ手動で移動できる1つまたは複数のオブジェクト。ただし、更新がいくつかある場合は、サードパーティの比較ツールが非常に役立ちます。現在、スキーマの移行にApexSQL Diffを使用していますが、他のツールで問題が発生することはありません。
スクリプトのcreate table
管理スタジオでは、テーブルを作成するために、バーでそのスクリプトを実行します。(オブジェクトエクスプローラーでテーブルを右クリックし、テーブルをスクリプトとして、作成先...)
INSERT bar.[schema].table SELECT * FROM foo.[schema].table
SET IDENTITY_INSERT TblName ON
その場合も行う必要があります。
SQL Serverスクリプトの生成ウィザードを使用して、以下を実行できるSQLスクリプトの作成をガイドすることもできます。
ここに示すスクリーンショットを使用したSQL Server 2008の良いワークフロー例。
あなたはこの方法で行くことができます:(一般的な例)
insert into QualityAssuranceDB.dbo.Customers (columnA, ColumnB)
Select columnA, columnB from DeveloperDB.dbo.Customers
また、挿入句を挿入するために列名も生成する必要がある場合は、以下を使用します。
select (name + ',') as TableColumns from sys.columns
where object_id = object_id('YourTableName')
結果をコピーしてクエリウィンドウに貼り付け、テーブルの列名を表します。これでもID列は除外されます。
select (name + ',') as TableColumns from sys.columns
where object_id = object_id('YourTableName') and is_identity = 0
行をコピーするスクリプトは、データベースが同じ場所に属している場合に機能することを覚えておいてください。
あなたはこれを試すことができます。
select * into <Destination_table> from <Servername>.<DatabaseName>.dbo.<sourceTable>
両方のDBが同じサーバーにある場合、サーバー名はオプションです。
データをコピー
INSERT INTO Alfestonline..url_details(url,[status],recycle)
SELECT url,status,recycle FROM AlfestonlineOld..url_details