我需要從數據庫'DWH_Staging'返回一個字段'CreditAdvisor_PrimaryCode',其中來自數據庫'DWH_Staging'的字段'CooperationEndDate'不包含來自具有變量名稱的數據庫的字段'DatumUkonceni'。我們有一個過程'adm.MaxBatch'用變量名返回數據庫的實際名稱。 我試過了:如何比較變量名稱的數據庫字段?
DECLARE @db_is nvarchar(50)
SELECT @db_is = mb.DatabaseName
FROM adm.MaxBatch mb
WHERE mb.SourceID = 1
PRINT @db_is
SELECT
ca.CreditAdvisorCode_Primary
FROM
@db_is.CS_Prodejci prod
JOIN DWH_Staging.dim.CreditAdvisor ca
ON prod.KodOZ = ca.CreditAdvisorId
WHERE
prod.KonecCinnosti <> ca.CooperationEndDateId
任何幫助,將不勝感激。
而且你發現了什麼?這段代碼存在明顯的問題,但我很好奇你已經嘗試了哪些努力。 –
@clifton_h多部分標識符無法綁定。但我不知道如何解決。 –
問題出在編譯時。沒有可變數據庫/模式/表名稱。相反,像下面的答案一樣,使用動態sql。我的建議是閱讀:[動態SQL | Microsoft Docs](https://docs.microsoft.com/zh-cn/sql/odbc/reference/dynamic-sql)在將自己暴露給SQL注入之前 –