SSDTを搭載したVisualStudio 2010 SP1を使用しています(2012年12月の更新あり)。新しいSQLServerプロジェクトを作成し、SQL Server 2008R2インスタンスのデータベースからオブジェクトをインポートしました。データベースの互換モードは80であり、現時点ではこれを変更できません。
とにかく。スキーマ比較を行うためにクリーンである必要があるビルドを実行すると、SQL Server自体には問題はありませんが、変数にSQL70590
エラーがスローされます。それらを見ると、変数の大文字と小文字の区別が原因であるようです(たとえば、@VARIABLE
として宣言されていますが、@Variable
として参照されています)。
データベース照合順序はLatin1_General_BIN
に設定されていますが、これがエラーがスローされる理由ですか?なぜエラーと見なされるのかわかりませんが、データベースでプロシージャコードがエラーなしで実行されます。
最終的に、このデータベースプロジェクトでSSDTを使用する方法を変更しました。最後に、ストアドプロシージャの大文字と小文字の区別に関するすべての問題を修正します。私のプロジェクトの注意点は、アプリケーションで実際に使用されているすべてのオブジェクトを知っているわけではないため、実際に使用されているオブジェクトのみを気にすることです。私は単に空のデータベースプロジェクトから始めて、開発者がアプリケーションで再設計するときに使用するオブジェクトを追加しています。次に、スキーマ比較を行うために、「クリーンな」オブジェクトを含むデータベースプロジェクトが必要です。
これを.sqlprojファイルのPropertyGroupに直接追加してみてください。
<ModelCollation>1033,CI</ModelCollation>
.dbprojを.sqlprojに移行するときにも同様の問題が発生しました。私はこれを私たちのチームのdbaから提案してもらいましたが、これが何をするのか正確にはわかりません。