Visual Studio 2010 でスキーマ比較機能が改善されることを期待していました。いくつかあると思いますが、基本的なものを動作させることができません。SQL Server 2005 データベースからスキーマを吸い込みました。次に、正常に機能していることを確認するために、データベースをソースとして選択し、スキーマ プロジェクトをターゲットとして選択してスキーマ比較を行いました。それらは同期していました。「スキップしないオブジェクト」のみを表示するようにフィルタリングすると、オブジェクトはリストされません。これは、スキーマが実際に一致していることを示しています。
次に、いくつかのスキーマ変更がデータベースにプッシュされました (Visual Studio 経由ではなく、外部から)。これらの変更の結果を取得したかったので、別のスキーマ比較を行いました。ここでもデータベースをソースとして選択し、プロジェクトをターゲットとして選択しました。いくつかの変更が正しく検出されました。ただし、プロジェクトに「更新を書き込んで」スキーマ比較をやり直しても、まだ変更がリストされています。スキーマの比較と更新の作成を続けています。それらは成功したように見えますが、後続のスキーマ比較では常に同じ変更と思われるものがリストされます (書き込みが失敗したかのように)。ただし、出力ウィンドウには成功メッセージしか表示されません。
Target database synchronization has started.
Analyzing comparison results
Looking for modified catalog or server options
Finding dropped objects in the project system
Finding modified objects in the project system
Ready to process comparison results
Modifying scripts for objects that have changed or have been deleted
Adding new objects to the project system
Target schema was updated successfully. To compare the schema again, click Refresh.
さらに、「異なる定義」としてリストされているオブジェクトをクリックして、「オブジェクト定義」ウィンドウでこれらのオブジェクトのスキーマを表示すると、左右のペインに表示されている内容に目に見える違いは見当たりません。スキーマ比較オプションをチェックしたところ、空白を無視していることに注意してください。
何か案は?