2013-03-26 27 views
0

我想寫一個觸發器,只有當更新列等於特定值時纔會運行。使用插入表MSSQL觸發器更新

基本上,只有當我更新列名「Status」爲值「Paid」時,我是否希望觸發器運行。

if (Update(Status) AND inserted.Status = 'Paid') 
begin 
end 

目前,我得到這個錯誤 「多部分組成的標識符‘inserted.Status’無法綁定。」

在此先感謝!

+0

請發表您的觸發器代碼行。 – Rachcha 2013-03-26 09:48:16

回答

1

您需要將其分成兩個步驟。 1.才反應過來,如果狀態更新,你想做什麼就在插入所有元素已支付狀態

if update(status) 
begin 
    -- Do the stuff to the Paid elements in inserted 
    select * from inserted as i where i.status = 'Paid' 

end 

記住,你的狀態,也可以從付費更新到付,你可能不希望對此作出反應。所以,你可以這樣做:

select * from 
inserted as i 
inner join deleted as d on i.id = d.id 
where i.status <> d.status and i.status = 'Paid' 

現在的結果只會包含付費已更新,它已經不等於付費

+0

感謝您的支持 – user1737391 2013-03-26 10:14:33

+0

該解決方案適合您嗎? – aweis 2013-04-14 11:31:21