6

スキーマ比較を行う変数をVisual Studio Database Project解析しないようです。SQLCMD

私の同義語はすべて次のようになります

CREATE SYNONYM [dbo].[addressesExtDB] FOR [$(ExtDB)].[dbo].[addresses];

しかし、それらはデータベースとは異なるものとして報告され続けます。

var ExtDB が に設定されている正しい'Specify SQLCMD Variabeles...'-settings でスキーマの更新を行うと、データベースは次のように正しく設定されます。'ExtDBnn'Synonym

CREATE SYNONYM [dbo].[addressesExtDB] FOR [ExtDBnn].[dbo].[addresses];

再比較アクションは、すべてのシノニムを異なるものとして誤って表示します。したがって、比較では sqlcmd-variabeles を解析し、結果を使用してデータベースと比較する必要があります。これまたは何かを行うオプションを見逃していますか、それとも同じ問題を経験して何らかの解決策を見つけましたか?

4

2 に答える 2

0

いいえ、変数は VS のスキーマ比較にまったく渡されません (たとえば、プロジェクトに独自の貢献者を追加することでこれを確認できます)。

興味深いことに、SqlPackage.exe を使用している場合でも、変数はソースにのみ渡され、ターゲットには渡されません。

これに直面したとき、データベースから取得した .dacpac ファイルでデータベース名 -> 変数置換を終了しました。これはかなりのハックですが、すべてがそのように機能します。

于 2014-12-08T17:14:20.437 に答える
-1

プロジェクト設定で変数のデフォルトを設定します。SchemaCompare は、それらが等しいと仮定します。

SQLCMD 変数

sqlcmd 変数のデフォルトを使用しないスキーマ比較

スキーマ - sqlcmd 変数のデフォルトとの比較

これがあなたが得ているものではない場合、私に知らせて、いくつかの説明を提供してもらえますか? 乾杯

于 2016-09-12T13:44:04.140 に答える