質問

私はローカルに2つの開発データベースを持っています

  1. Alpha
  2. Beta_Dev

リモートで2つの生産データベースがあります

  1. Alpha
  2. Beta

私が使う SQL比較 2つのアルファデータベースのスキーマを同期します。

時々、データベースの開発バージョンのストアドプロシージャ Alpha データベースの参照テーブル Beta, 、またはローカル環境で、 Beta_Dev.

例えば:

Select * from Beta_Dev.dbo.MyTable

このコードは、ベータデータベースが呼び出されるため、生産サーバーでは機能しません。 Beta, 、 それよりも Beta_Dev.

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

データベースは順調にアップロードされるだけでなく、SQL比較は、beta_dev / betaのみが異なる場合、SPが異なると考えるようにだまされません。

役に立ちましたか?

解決

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

作成 Synonyms で参照されるオブジェクトの場合 Beta データベース

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

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

したがって、Procsは次のように使用できます。

SELECT * FROM BetaMyTable

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top