0
我需要從數據庫DWH_Staging
返回一個字段CreditAdvisor_PrimaryCode
,其中來自數據庫DWH_Staging
的字段CooperationEndDate
不會從具有變量名稱的數據庫中獲取字段DatumUkonceni
。我們有一個程序adm.MaxBatch
用變量名稱返回數據庫的實際名稱。我一個SP如下:如何比較兩個數據庫中有變量名的字段?
DECLARE @db_is NVARCHAR(50)
DECLARE @string NVARCHAR(MAX)
SET @db_is = (
SELECT mb.DatabaseName
FROM adm.MaxBatch mb
WHERE mb.SourceID = 1
)
SET @string = 'SELECT
ca.CreditAdvisorCode_Primary
FROM ' + @db_is + '..CS_Prodejci prod
JOIN ' + @db_is + '..CS_OZ oz ON prod.RC = oz.OZ_RC
JOIN DWH_Staging.dim.CreditAdvisor ca ON oz.KodOZ = ca.CreditAdvisorCode_Primary
WHERE prod.KonecCinnosti <> ca.CooperationEndDateId'
PRINT @string
EXEC (@string)
它只返回一個文本輸出。 任何幫助將被折扣。謝謝。
它不應該只是返回一個文本輸出,而是將T-SQL打印到消息窗口中,然後執行它,所以它應該返回結果,但可能它不會這樣做? CreditAdvisor_PrimaryCode和CreditAdvisorCode_Primary列是相同的嗎? – Leonidas199x
只有CreditAdvisorCode_Primary,它應該是正確的。 –
我看不出代碼有什麼問題,它應該正在執行,並且如果動態sql解析不正確,它會給你一個錯誤。如果複製打印輸出並運行它,它是否會返回預期結果? – Leonidas199x