Ich erhalte den folgenden Fehler beim Ausführen der folgenden Abfrage in einer Stored Procedure. Kann mir jemand helfen, den Fehler zu finden?
UPDATE ist nicht zulässig, da die Anweisung die Ansicht "sup_item" aktualisiert, die an einem Join beteiligt ist und einen INSTEAD OF UPDATE-Trigger hat.
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'
Ich habe den Hinweis gefunden: http://msdn.microsoft.com/en-us/library/ms177523.aspx
Eine Ansicht mit einem INSTEAD OF UPDATE-Trigger kann nicht das Ziel einer UPDATE mit einer FROM-Klausel sein.
Ich muss also die UPDATE-Anweisung umschreiben (sie kann immer noch in einer Prozedur stehen), um NICHT die sup_item
(die eine Ansicht ist), behalten aber die zugrunde liegende(n) Tabelle(n) bei Bedarf bei.
Könnte sie bitte jemand umschreiben, wenn jemand weiß, was zu tun ist?