|
Обновить данные в рамках триггера
|
|||
---|---|---|---|
#18+
Есть таблица, допустим t1 (id int, fname nvarchar(256), lname nvarchar(256)) Мне нужно, чтобы после вставки записей в таблицу проверялось, что если поле fname NULL, то в поле lname вставлять, например, текст 'Тест'. Подскажите, пожалуйста, как правильно это реализовать? Как я понимаю данные в таблицу ещё физически не занесены, поэтому сделать так я не могу: update t1 set lname = 'Тест' where id in (select id from inserted) Код: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2020, 17:57 |
|
Обновить данные в рамках триггера
|
|||
---|---|---|---|
#18+
1. after-триггер срабатывает после операции, т.е. данные в таблице уже есть 2. в таблице inserted может быть как одна, так 0, так и много записей 3. rollback в after-триггере плохо, будет приводить к исключению. для контроля данных есть instead of триггеры, ибо зачем сначала делать модификацию данных, а потом откатывать, если можно было ее не делать? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2020, 18:05 |
|
Обновить данные в рамках триггера
|
|||
---|---|---|---|
#18+
Saniacot если поле fname NULL, то в поле lname вставлять, например, текст 'Тест'. а констрейнт DEFAULT ('Тест') вас не устроит ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2020, 18:45 |
|
Обновить данные в рамках триггера
|
|||
---|---|---|---|
#18+
a_voronin, поля разные, не поможет. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2020, 19:03 |
|
Обновить данные в рамках триггера
|
|||
---|---|---|---|
#18+
В INSERTе надо вставлять сразу правильное значение lname: Код: sql 1.
И триггер не нужен! ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2020, 19:47 |
|
|
start [/forum/topic.php?fid=46&fpage=70&tid=1686511]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 132ms |
0 / 0 |