如何比较数据库中的字段与变量名?

How to compare fields from databases with variable name?

我需要 return 数据库 'DWH_Staging' 中的字段 'CreditAdvisor_PrimaryCode',其中数据库 'DWH_Staging' 中的字段 'CooperationEndDate' 不匹配字段 'DatumUkonceni' 来自具有变量名称的数据库。我们有一个过程 'adm.MaxBatch' returning 带有变量名的数据库的实际名称。 我试过:

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   

如有任何帮助,我们将不胜感激。

从变量中选择数据库时,您需要将其设为动态,例如:

DECLARE @db_is nvarchar(50),@string NVARCHAR(MAX)

SET @string='  Select   ca.CreditAdvisorCode_Primary 
               from '+@db_is+'..CS_Prodejci 
               JOIN DWH_Staging.dim.CreditAdvisor ca 
               ON prod.KodOZ = ca.CreditAdvisorId
               WHERE prod.KonecCinnosti <> ca.CooperationEndDateId '

  PRINT @string
  EXEC(@string)