ОБНОВЛЕНИЕ не позволяется, потому что обновления оператора просматривают “table_name”, который участвует в соединении и имеет триггер ОБНОВЛЕНИЯ INSTEAD OF

Я получаю следующую ошибку при выполнении следующего запроса в Хранимой процедуре. Кто-либо мог помочь в нахождении отказа?

ОБНОВЛЕНИЕ не позволяется, потому что обновления оператора просматривают "sup_item", который участвует в соединении и имеет триггер ОБНОВЛЕНИЯ INSTEAD OF.

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 (это все еще может быть в процедуре) НЕ использовать sup_item (который является представлением), но сохраните базовую таблицу (таблицы) по мере необходимости.

Кто-то мог переписать его, если кто-либо знает, что сделать?

5
задан Factor Mystic 16 August 2017 в 18:34
поделиться

1 ответ

Проблема не в вашем запросе. Согласно комментариям к вашему вопросу, сущность, которую вы обновляете [sup_item], на самом деле не является таблицей, это представление. Это представление имеет триггер INSTEAD OF UPDATE.

Можете ли вы опубликовать SQL для представления и триггера(ов)?

.
2
ответ дан 18 December 2019 в 09:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: