SQL Server -SQL比較 - 異なるデータベース名の自動識別と交換?
-
27-10-2019 - |
質問
私はローカルに2つの開発データベースを持っています
Alpha
Beta_Dev
リモートで2つの生産データベースがあります
Alpha
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
. 。デフォルトでチェックされていると思いますが、変更したい場合はそこにあります
所属していません StackOverflow