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

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

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

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

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

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

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

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

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

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


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