如何比较数据库中的字段与变量名?
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)
我需要 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)