我在執行存儲過程中的以下查詢時遇到以下錯誤。任何人都可以幫助找到錯誤嗎?UPDATE不允許,因爲語句更新參與聯接並具有INSTEAD OF UPDATE觸發器的視圖「table_name」
UPDATE不允許,因爲語句更新視圖「sup_item」,它參與聯接並具有INSTEAD OF UPDATE觸發器。
UPDATE si
SET
name = mc.name,
sup_item_cat_id = mc.res_sup_item_cat_id,
xf_value = mc.xf_value,
ava_start_date = mc.ava_start_date,
ava_end_date = mc.ava_end_date,
status_code = mc.status_code,
last_mod_us_id = CASE WHEN mc.last_mod_us_id = 42 THEN @posting_us_id
ELSE mc.last_mod_us_id END,
last_mod_tsp = CURRENT_tsp
FROM sup_item AS si
JOIN merch_cat_imp_sup_item AS mc
ON mc.sup_id = si.sup_id
AND mc.res_sup_item_id = si.sup_item_id
AND mc.cat_imp_event_id = @cat_imp_event_id
AND mc.accept_flag = 'y'
WHERE si.shi_flag = 'n'
我發現參考:http://msdn.microsoft.com/en-us/library/ms177523.aspx
的視圖與INSTEAD OF UPDATE觸發器不能是 UPDATE與FROM子句的目標。
所以,我不得不重寫UPDATE語句(它仍然是在過程中)不使用sup_item
(這是一個視圖),但保持基礎表(一個或多個)需要。
有人可以重寫它,如果有人知道該怎麼辦?
請將代碼發佈到SUP_ITEM視圖後面,以便我們能夠更好地爲您提供幫助。 – 2010-06-21 13:44:50
使用底層視圖sup_item下的表編寫查詢是不可能的,而實際上並不知道這些表是什麼或它們在視圖中如何使用。 – 2010-06-21 14:07:26