9 Stimmen

UPDATE ist nicht zulässig, da die Anweisung die Ansicht "table_name" aktualisiert, die an einem Join teilnimmt und einen INSTEAD OF UPDATE-Trigger hat

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?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X