powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / изменение значения столбца нововставленной строки в триггере
7 сообщений из 7, страница 1 из 1
изменение значения столбца нововставленной строки в триггере
    #32039632
Фотография sky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подскажите, как в триггере изменить значение столбца нововставленной строки (корявое выражение, но лучше не придумывается...)

поясняю задачу.

есть таблица типа
CREATE TABLE t(
id int REFERENCES t2 (id2)
name char(10)
)

при вставки строки пользователем в поле [name] заносится значение, а значение [id] должно генериться автоматом, да причем в зависимости от залогиненного пользователя (т.е. создать универсальное выражение в DEFAULT нельзя).

для таблицы создан триггер AFTER INSERT, в котором вычисляется значение [id].

вопрос: как мне вставить это значение id?

апдейтить табличку INSERTED не получается (райзится егог), а апдейтить после инсерта мешает внешний ключ...
...
Рейтинг: 0 / 0
изменение значения столбца нововставленной строки в триггере
    #32039636
Фотография Maxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что прямо в StoredProcedure вместо триггера ето делать нельзя??
Зачем делать два действия вместо одного
...
Рейтинг: 0 / 0
изменение значения столбца нововставленной строки в триггере
    #32039639
Фотография AVL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я не пойму - если есть внешний ключ, то он должен ругануться до триггера...
...
Рейтинг: 0 / 0
изменение значения столбца нововставленной строки в триггере
    #32039643
Фотография Белов Владимир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно поподробнее, что значит "в зависимости от пользователя"
...
Рейтинг: 0 / 0
изменение значения столбца нововставленной строки в триггере
    #32039649
Alexandr Kapustin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
использовать триггер instead of, если MSSQL2000, иначе вставлять записи через ХП...
...
Рейтинг: 0 / 0
изменение значения столбца нововставленной строки в триггере
    #32039651
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если скул 2000 попробуй замещающий тригер ....
...
Рейтинг: 0 / 0
изменение значения столбца нововставленной строки в триггере
    #32039656
Фотография sky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дело оказалось действительно во внешнем ключе (браво, AVL!!!)
при вставке фиктивного непротиворечащего внешнему ключу значения и конструкции типа (см. ниже) всё работает!!!

UPDATE t
SET id= @id -- вычислено заранее в триггере
FROM t t__, inserted i__
WHERE t__.key=i__.key

(key - ключевое identity поле)

правда, фиктивные значения - как-то это неэстетично...
щас попробую замещающий триггер, вроде должно получиться...
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / изменение значения столбца нововставленной строки в триггере
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]