24

VS 2012を使用してデータベースプロジェクトを作成しました。スキーマ比較が完了したら、ターゲットと同期するために更新ターゲットボタンを有効にする必要があります。スキーマ比較後にターゲットボタンが更新されない

しかし、有効になっていません。ヘルプPLZ。私はSP 3、SQL Server 2012のとVS 2012を使用してい

、エラー一覧で

enter image description here

+0

私はVSユーザーボイスの提案を作成しました["更新"と "更新スクリプトの生成"ボタンを有効にする](https://visualstudio.uservoice。com/forums/121579-visual-studio-ide/suggestions/17396128-keep-update-and-generate-update-script-buttons)あなたが同意する場合は投票してください。 –

答えて

39

チェックあなたが何らかのエラーを持っている場合、私はVSでの非認識された単語を持っている(が、それはでませんSQL Server)、私はそれをコメントアウトし、再比較し、正常に有効にされました。

+2

これは私の問題でした。常にエラーリストウィンドウをチェックしてください! :)ありがとう@FranciscoG – kzfabi

+1

プロジェクト設定のターゲットバージョンが正しいバージョンのSQL Server用であることを確認してから、認識できない単語を使用しないでください。 – cdonner

+1

注意:**エラーがあれば、UPDATEボタンが表示されないことがあります。たとえあなたが更新から除外したオブジェクト上にあっても。 – JohnLBevan

0

「スキーマ比較」で「オプション」を開くたびに、「比較」ボタンを再度クリックして「更新」ボタンを有効にする必要があります。ただし、初めて動作しない場合は、スキーマ比較ファイルをいったん閉じて再度開いてください。

9

「内部エラーのために展開計画を生成できません」という警告メッセージが表示されているかどうかを確認してください。その場合は、[更新とスクリプトの生成]ボタンが無効になります。

Visual Studioを終了し、データベースプロジェクトを含むフォルダに移動し、すべての(* .dbmdl)ファイルを削除します。その後、Visual Studioを再起動し、比較ボタンを有効にする必要がある時点で比較スキーマを再実行します。

+0

これは正解ではありませんが、正しいです。ありがとうございました! –

1

回避方法:

私の場合は。修正エラーは優先順位の高いタスクではありませんでした。また、私はエラーリストでエラーを見つけることができませんでした。

ソースまたはターゲットで "Visual Studio Database Project"を使用する必要はありません。プロジェクトを使用する代わりに、あなたと一緒にスクリプトを使用して一時データベースを作成します。

ソース(および/または)ターゲットでこの(またはこれらの)一時データベースを選択します。

ボタンが有効になっている必要があります。

問題を解決するよりも、違いを得ることが重要でした。それがあなたを助けることを願ってください。もう少し即興で。

+0

この有益な回答はより良い言葉にすることができますが、データベース内の他のデータベースへの参照があり、そのためにエラーが生成されているときに機能します。 Prashant Pが言っていることは、サーバー上のデータベースをソリューション内のデータベースプロジェクトと比較するのではなく、ソリューション内のデータベースプロジェクトを使用してデータベースを作成し(私はローカルのSQL Serverインスタンス上に作成します)データベース。 – user2721607

+0

はい、この場合、本当に必要なのが比較であれば、「更新」ボタンをアクティブにする必要はありません。 – KarmaEDV

1

エラーリストにはエラーは表示されませんでした。これは、「Show Issues Generated」ドロップダウンが「Build Only」に設定されていたためです。 "Build + IntelliSense"に変更すると、スクリプトの生成と更新ボタンを有効にするために修正が必要なSQLエラーが表示されました。

0

SSDTでは、更新ボタンが有効になっていても、生成スクリプトが有効になっていない場合がありました。これは、私の目的地のスキーマが私のローカルソリューション(* .sqlproj対プロジェクト)だったからです。

スクリプトを正しく生成するためには、実際のデータベースである必要があることを私に知らせるのに数分かかりました。

関連する問題