4

あるSQLサーバーから別のSQLサーバーにデータを転送していますが、スキーマを比較して同期すると、次のエラーが発生します。完了するためにredgateSQLcompareを使用しています。

同等の操作の照合の競合を解決できません

ベースSQLサーバーはSQL_Latin1_General_CP1_CI_ASであり、宛先サーバーはLatin1_General_CI_ASです。

4

5 に答える 5

6

SQL Compareには、照合を無視するオプションがあります。比較プロジェクト構成の「オプション」タブの下を確認します。

于 2009-02-13T16:26:47.803 に答える
0

サーバーの照合設定が異なるように聞こえます。

データをどのように転送していますか?新しいプラットフォームでデータベースの復元を実行していますか?

いずれの場合も、ソース環境で現在使用されているものと同じ照合が新しい環境で使用されていることを確認する必要があります。

これが理にかなっていることを願って、さらに支援が必要な場合はお知らせください。

于 2009-02-13T16:28:34.397 に答える
0

SQL Compareユーティリティに問題がありますか、それとも異なるサーバー照合が問題につながるのではないかと心配していますか?

ベースサーバーと一致するように宛先サーバーの照合を変更できます

If that is not possible, then make the Collation of the databases on each server match, and then your only real problem is likely to be any temporary tables which you create (they will have a default collation matching the server / TEMPDB), and so long as you explicitly create the temporary table (i.e. don't create it using SELECT * INTO #TEMP FROM MyTable) and explicitly assign a collation to any varchar/text columns you should be OK

于 2009-02-13T16:29:40.463 に答える
0

これを克服する方法は、SQL Compare を介してスクリプトを生成し、Collat​​ion 固有のコードを削除 (または置換) することです。これは比較的高速で簡単に実行できます。最後に、スクリプトを宛先サーバー/データベースに手動で適用します。

于 2011-02-21T18:35:56.780 に答える
0

上記の理由により、「照合を無視する」は間違いなく機能しません。この問題は、照合順序が異なるテキスト フィールドで JOIN 句を使用するビューやストアド プロシージャなどのオブジェクトを移行するときに発生します。

誰かがサーバーの既定の照合順序を変更し、JOIN の反対側の列が特定の照合順序を使用している場合、この問題が発生しています。また、SSMS でオブジェクトを手動でスクリプト化し、自分で移動した場合と同様に、SQL Compare でも発生します。

これを修正するには 2 つの方法があります。結合で COLLATE 句を指定して、使用する照合を明示的に指定するか、宛先データベースの既定の照合をソースと一致するように変更することができます。

残念ながら、これを解決する SQL Compare の「特効薬」はありません。

于 2014-09-25T08:30:07.647 に答える