我有一個將源數據庫中的記錄存檔到目標數據庫的過程,其中源數據庫中的表被鏡像到目標數據庫中。因此,當我指定表名,我也必須在充分指定數據庫名稱,如下所示:在Sybase的存儲過程中將大量位置的變量用於存儲過程中的表名
DB_NAME.dbo.TABLE_NAME
但是,我也必須移動環境中,相應的數據庫名稱不同之間的存儲過程。
例如:
開發:
DEV_DB_NAME.dbo.TABLE_NAME
QA:
QA_DB_NAME.dbo.TABLE_NAME
我可以從使用shell腳本的環境變量獲得這些數據庫名稱,並將其傳遞到存儲過程。但是,TSQL不允許數據庫名稱的變量。
我有一個解決方案,我基本上只是將整個腳本轉換爲一個字符串,並使用動態SQL與exec
一起運行。
我的解決方案建議嗎?還有其他解決方案嗎?
謝謝。
爲什麼你不能只使用dbo.TABLE_NAME而不是DB_Name.dbo.TABLE_NAME?您是否在存儲過程中引用了多個數據庫? – ClearLogic
@ClearLogic,是的,我在同一個SPROC中引用了2個數據庫。 – czchlong