2013-07-10 30 views
8

次の比較では違いを表示しないようにします。 MSDN (手順7を参照)には、のSQLCMD変数がありますが、これは使用できない機能です。このドキュメントはSQL 2010用ですが、私は2012を使用しています。このページには、2012年版のドキュメントはありません。SQLCMD変数とSSDTスキーマ比較の問題

$(DatabaseName)の値を指定すると、この比較が有効になります。私は既に自分のデータベースプロジェクト設定で指定された値を持っています。

SQL Schema Compare

+0

プロジェクトとライブデータベースの間でこれを行うことはできません。そのページでも、「2つのプロジェクトを比較するときにSQLCMD変数のみを指定できます」データベースを更新するためのスクリプトを生成するとどうなりますか? –

+0

また、これがデータベースのローカルなテーブルの場合は、なぜデータベース名を指定していますか?単に "dbo.ClaimProvider"を使用すれば、すべて設定する必要があります。私はそれがクロスデータベースクエリでは異なることを知っていますが、これはデータベースを横断するようには見えません。 –

+0

@PeterSchott私は多くのデータベース間の結合を行います。したがって、3と2の部分名の間で切り替えるのではなく、すべての名前を一貫させるほうがよさそうです。 –

答えて

3

あなたはライブデータベースに、あなたの開発データベースではなく、プロジェクトを比較するスキーマによってこの問題を回避することができます。まず、開発データベースにプロジェクトを展開する必要があることに留意してください。

FYI - 変数が置換されていないという事実は、比較ウィンドウで問題に過ぎません。変数は比較中に誤った差異を引き起こさない(つまり、比較するときにスキーマ比較が変数を代用する)、ターゲットデータベースを更新するときに変数が置換されます。

+0

デベロッパーが変更したものをキャプチャしようとしていますデータベースを開き、プロジェクトを更新します。プロジェクトをデベロッパーにデプロイした場合、変更を一掃することはできませんか? –

+1

開発目的で使用される任意のサーバー、おそらくローカルのdbインスタンスまたはスキーマ比較専用の共有サーバーであってもかまいません。 – Keith

+0

またはここに考えがある... MSにその比較機能のバグを修正させる笑 – user5855178