我想寫一個觸發器,只有當更新列等於特定值時纔會運行。使用插入表MSSQL觸發器更新
基本上,只有當我更新列名「Status」爲值「Paid」時,我是否希望觸發器運行。
即
if (Update(Status) AND inserted.Status = 'Paid')
begin
end
目前,我得到這個錯誤 「多部分組成的標識符‘inserted.Status’無法綁定。」
在此先感謝!
我想寫一個觸發器,只有當更新列等於特定值時纔會運行。使用插入表MSSQL觸發器更新
基本上,只有當我更新列名「Status」爲值「Paid」時,我是否希望觸發器運行。
即
if (Update(Status) AND inserted.Status = 'Paid')
begin
end
目前,我得到這個錯誤 「多部分組成的標識符‘inserted.Status’無法綁定。」
在此先感謝!
您需要將其分成兩個步驟。 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'
現在的結果只會包含付費已更新,它已經不等於付費
感謝您的支持 – user1737391 2013-03-26 10:14:33
該解決方案適合您嗎? – aweis 2013-04-14 11:31:21
請發表您的觸發器代碼行。 – Rachcha 2013-03-26 09:48:16