2台のサーバーにSQLサーバーデータベースがあります。その構造はどちらも同じです。私が抱えている問題は、両方のデータベース間でデータをコピーしたいということですが、最初にすべての制約を削除して再作成する必要があるという問題があります。
データに関して、両方のデータベースの違いをスクリプト化する迅速かつ簡単な方法はありますか?
2台のサーバーにSQLサーバーデータベースがあります。その構造はどちらも同じです。私が抱えている問題は、両方のデータベース間でデータをコピーしたいということですが、最初にすべての制約を削除して再作成する必要があるという問題があります。
データに関して、両方のデータベースの違いをスクリプト化する迅速かつ簡単な方法はありますか?
はい、これを行うスクリプトを書くために何時間も費やすのはやめましょう。そのすべての労力とデバッグを処理する、実証済みのツールを使用してください。
http://www.red-gate.com/products/sql-development/sql-data-compare/
試用版があり、いくつかの代替手段もあります。これを読んで、車輪の再発明をすべきでない理由を理解してください。
http://madelinebertrand.com/2012/04/20/re-blog-the-cost-of-reinventing-the-wheel/
私の 2 セントを投入するだけです。Visual Studio 2010 Premium または Ultimate を使用している場合は、「データ比較」と呼ばれる機能を実際に使用して、2 つのデータベース間でデータを比較できます。また、ターゲット データベースの更新スクリプトも生成できます。
私は Aaron Bertrand と同じ意見を繰り返すことしかできません。それに加えて、私はこの種のタスクにXSQLを使用して成功しました。
私が覚えている限りでは、これは使いやすく一貫したツールでした...
最初に、次のように問題のテーブルを変更して、制約をオフにする必要があります: alter table [table name] nocheck constraint all
次に、リンクするか、次の形式を使用して直接クエリを実行して、他のサーバーからクエリを実行できます。select [cols] from [local table], [remote server.remote DB.remote table]