0
我在更新觸發器後創建,它從子項創建父項。T-SQL - 子項 - 父項
所以更新後,如果帳戶不存在聯繫人,觸發器將創建帳戶名爲「firstname + lastname + Household」。對於連接,我使用額外的帳戶在我存儲contact_ID的列。插入後,我在聯繫表上運行更新,在此處我將創建的賬戶ID放入適當的列。有沒有辦法避免使用額外的列?我如何獲得account_id?
BEGIN
if not exists (select * from Account as A
join inserted as I on a.account_ID=i.account_fk where a.deleted=0)
begin
insert into account
(
Auto_Create_ID
,Name
)
select
i.contact_ID AS OLD_ID**strong text**
,isnull(i.firstname,'') + ' ' + i.lastname + ' Household' AS Name
from inserted AS I
where isnull(i.lastname,'')<>''
update C
set C.Account_FK=a.Account_ID
from Contact AS C
join Account AS A on C.Contact_ID=a.Auto_Create_ID
where a.Deleted=0 and c.Contact_ID in
(select Contact_ID from inserted)
end
立即謝謝
所以你想創建後帳戶的ID,然後將其鏈接到聯繫人? – Jens 2015-02-05 16:24:40
你想在'UPDATE'之後或者在'INSERT'後面做這個嗎? 「UPDATE」是否可以留在應該刪除的'account'中的舊行? – HABO 2015-02-05 17:51:29
您可以在'INSERT'語句中使用['OUTPUT'子句](https://msdn.microsoft.com/en-us/library/ms177564.aspx)來檢索任何或全部列,例如, 'Auto_Create_ID'和任何其他需要將分配的id與'inserted'中的數據關聯起來的列。 – HABO 2015-02-05 19:18:48