1

ローカルに 2 つの開発データベースがあります

  1. Alpha
  2. Beta_Dev

2 つの本番データベースがリモートにあります

  1. Alpha
  2. Beta

SQL Compareを使用して、2 つの Alpha データベースのスキーマを同期します。

場合によっては、データベースの開発バージョンのデータベースAlpha参照テーブルのストアド プロシージャBeta、またはローカル環境のBeta_Dev.

例えば:

Select * from Beta_Dev.dbo.MyTable

ベータ データベースはBetaではなくと呼ばれているため、このコードは運用サーバーでは機能しませんBeta_Dev

SQL Compare を使用して、すべての SP またはビューを比較する方法はありますBeta_Dev (local) = Beta (remote)か?

データベースが正常にアップロードされるだけでなく、Beta_Dev / Beta のみが異なる場合でも、SQL Compare は SP が異なると騙されることはありません。

4

1 に答える 1

1

私はあなたが望むようにそれを行うことができるとは思いませんが、それがあなたがしたいことに適しているならば、ここに潜在的な回避策があります

データベースSynonymsで参照されているオブジェクト用に作成しますBeta

USE [Alpha]
CREATE SYNONYM [dbo].[BetaMyTable] FOR [Beta].[dbo].[MyTable]

USE [Alpha_dev]
CREATE SYNONYM [dbo].[BetaMyTable] FOR [Beta_dev].[dbo].[MyTable]

これで、procは次を使用できるようになります。

SELECT * FROM BetaMyTable

Edit Project... -> OptionsSQL Compareでは、呼び出されたにルール無視オプションがありますDatabase and server name in synonyms。デフォルトでチェックされていると思いますが、変更したい場合はあります

于 2011-06-14T01:05:51.910 に答える