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