0

運用データベース (SQL Server 2000) のコピーを SQL Server 2008 にアップグレードし、ストアド プロシージャに多数の修正と変更を加えました。ここで、現在のデータを運用環境 (SQL Server 2000) からコピーして新しい SQL Server 2008 にプッシュし、運用アプリケーションを新しいものに向けたいと考えています。すべてのテーブル スキーマは変更されていません。

すべてのテーブルをファイルへの挿入としてスクリプト化することが 1 つの可能性であることはわかっています。これが最善の方法ですか?または、より良いアプローチがありますか?外部キーは問題になりますか?

4

2 に答える 2

2

ここにあなたができるいくつかのことがありますが、これらにはすべて長所と短所があります。

手動スクリプトとリンク サーバー:

リンク サーバー接続をセットアップし、INSERT INTO を使用する

INSERT INTO server2008.databaseName.schemaName.TableName (Col1, Col2, ..., Coln)
SELECT Col1, Col2, ..., Coln
FROM server2000.databaseName.schemaName.TableName

これらの実行順序に注意してください。外部キーの問題を回避するために、参照のないテーブルを最初に移行してください。

一部のテーブルで外部キーと ID 挿入を一時的に無効にすることもできます

ALTER TABLE MyTable NOCHECK CONSTRAINT FK_Constraint
SET IDENTITY_INSERT tableName ON

-- INSERT STATEMENT HERE

SET IDENTITY_INSERT tableName OFF
ALTER TABLE MyTable CHECK CONSTRAINT FK_Constraint

データのエクスポート ウィザード

Tomasito によって既に提案されています。スクリプトを正しい順序で実行するようにしてください。以前に挿入されたテーブルのデータのみを参照するテーブルなどよりも、参照のないテーブルの最初のスクリプト….

サードパーティのツール

あなたのために仕事をするこれらの多くがあります。これが 1 回限りのタスクである場合は、試用版を使用して作業を完了できます。私が知っているカップルは、ApexSQL Data Diff、SQL Data Compare、AdeptSQL Diff です。

于 2013-08-08T10:48:17.877 に答える
0

ImportMicrosoft SQL Server Management Studio で、データベースとオプションを右クリックしExportます。もう 1 つの方法は、SQL プロンプト: SQL Compare (有料ツール) を使用することです。データセットを試して、オプションを使用する方が良いと判断する必要があります。

于 2013-08-07T18:52:00.003 に答える