[英]How to insert value to a column as a result of geometry of another column in the same table
[英]How to use identity column value of target table to insert in another column of same table
請避免問題的標題令人困惑。 表E是源,表S是目標。 S.SEA_ID
是標識列(int,不為null)。 每當未滿足這些連接條件且NOT MATCHED AND E.ACCT_NUM IS NULL
,我想插入值'EY|' + CAST(S.SEA_ID AS VARCHAR)
'EY|' + CAST(S.SEA_ID AS VARCHAR)
在S.ACCT_NUM
列中。 但是我得到了錯誤
無法綁定多部分標識符“ 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);
我建議將ACCT_NUM列更改為計算列。
ALTER Table STG_EXTERNAL_ACCT ALTER Column ACCT_NUM as 'EY|'+CAST(S.SEA_ID AS VARCHAR)
您也可以在觸發器中設置此列。
Create Trigger TiggerName ON STG_EXTERNAL_ACCT
INSTEAD OF INSERT
AS Begin
Insert Into STG_EXTERNAL_ACCT (ACCT_Num, ...)
Select 'EY|'+CAST(S.SEA_ID AS VARCHAR), ...
From Inserted
End
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.