在從另一個數據庫中訪問數據是我的架構細節:在存儲過程
- DB_A:schema_1,schema_2,schema_3
- DB_B:schema_3
在schema_3接入資源的一些程序(表,view,sp)from schema_1和schema_2。
schema_3中的所有過程在這兩個dbs上都是相同的。 如何從schema_3訪問schema_1的dll。
現在我可以在我的程序中硬編碼DB_A,但是當我將代碼移動到客戶端計算機時,它會產生一個問題,因爲DB_A可能不一樣(原因是客戶端是miser並且有QA,Dev和Prod同一臺機器)。
第二個選項是獲取DB_A名稱作爲參數,但它會使所有schema_3 SP動態(因爲我沒有得到任何方法來訪問像@ DBName.schema_name.ResourceName之類的東西)。
第三個選項是創建鏈接服務器,由於與第一個相同的原因,這再次無法解決我的問題。
任何想法如何繼續,我不希望我的程序是動態的,因爲80%是直的。
編輯開始:
因此,我可以再說一遍,因爲我有與具有資源(表/視圖/模式)的數據庫的多個數據庫,其需要被共享,然後具有其它數據庫(一個或多個),其具有從共享數據庫和自我數據庫計算數據的存儲過程。
共享數據庫名稱在所有環境中不會保持不變,我想更改它們(特定於環境)。我已經提出了一個解決方案,我將爲所有共享資源創建同義詞,並且所有過程都將使用它們,這樣他們都指的是來自第一個數據庫的共享資源。
對於每次安裝,我需要修改同義詞定義以反映正確的共享數據庫名稱。有沒有任何SYNONYM對於數據庫名稱,這種方式我將有更少的同義詞處理。
Schema_1,Schema_2,Schema_3不是資源而是架構名稱,如DBO,員工等DB_B是不固定的第二件事,它的名字可以在不同的環境動態變化。 –
我找到了對象的同義詞,它們是類似於數據庫名稱的同義詞 –