【发布时间】:2014-09-19 04:37:44
【问题描述】:
如果问题的标题令人困惑,请原谅。表 E 是源,表 S 是目标。 S.SEA_ID 是标识列(int,非空)。只要这些连接条件是NOT MATCHED AND E.ACCT_NUM IS NULL,我就想在S.ACCT_NUM 列中插入值'EY|' + CAST(S.SEA_ID AS VARCHAR)。但是我收到了错误
无法绑定多部分标识符“S.SEA_ID”。
是否可以插入目标表的标识列值来填充同一目标表的另一列?如果在下面的 MERGE 语句中不可能,我的其他选择是什么?
MERGE INTO STG_EXTERNAL_ACCT S
USING ##EYDUPLICATES E
ON E.COUNTERPARTY_NAME = S.COUNTERPARTY_NAME
AND E.COUNTERPARTY_ADDRESS = S.COUNTERPARTY_ADDRESS
AND E.COUNTERPARTY_STATE = S.COUNTERPARTY_STATE
AND E.COUNTERPARTY_COUNTRY = S.COUNTERPARTY_COUNTRY
AND E.COUNTERPARTY_CITY = S.COUNTERPARTY_CITY
WHEN NOT MATCHED AND ISNULL(E.ACCT_NUM,'')=''
THEN INSERT (ACCT_NUM, COUNTERPARTY_NAME, COUNTERPARTY_ADDRESS,
COUNTERPARTY_STATE, COUNTERPARTY_COUNTRY, COUNTERPARTY_CITY)
VALUES ('EY|' + CAST(S.SEA_ID AS VARCHAR),E.COUNTERPARTY_NAME,
E.COUNTERPARTY_ADDRESS, E.COUNTERPARTY_STATE,
E.COUNTERPARTY_COUNTRY, E.COUNTERPARTY_CITY);
【问题讨论】:
标签: sql sql-server insert merge identity-column