Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вопрос по триггерам / 8 сообщений из 8, страница 1 из 1
22.11.2002, 13:15:44
    #32071314
Alex Hazov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по триггерам
Есть триггер на UPDATE, INSERT, DELETE. При его срабатывании надо обновить запись в другой таблице.
Правильное ли это решения для определения типа триггера ???
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
CREATE TRIGGER trigger_name ON table_name
FOR UPDATE, INSERT, DELETE
AS

set nocount on
if ( exists ( select * from inserted ) )
	declare temp_cursor cursor FAST_FORWARD for select distinct user_id from inserted
else                
	declare temp_cursor cursor FAST_FORWARD for select distinct user_id from deleted
set nocount off      

.... проход по курсору ....
...
Рейтинг: 0 / 0
22.11.2002, 13:20:00
    #32071318
Зайцев Фёдор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по триггерам
нет
...
Рейтинг: 0 / 0
22.11.2002, 13:22:17
    #32071319
Alex Hazov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по триггерам
А как надо делать ?
...
Рейтинг: 0 / 0
22.11.2002, 13:22:49
    #32071320
Александр Спелицин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по триггерам
В случае Update у Вас будут записи как в inserted, так и в deleted.
...
Рейтинг: 0 / 0
22.11.2002, 13:30:11
    #32071323
Alex Hazov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по триггерам
Я вытаскиваю только FOREIGN KEY (он в update не меняетя), поэтому в случае update мне все равно откуда его брать
...
Рейтинг: 0 / 0
22.11.2002, 18:19:02
    #32071516
Q
Q
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по триггерам
Подскажите ответ на примерно такой же вопрос:

Нормально ли (из практики) объявлять курсор (declare c_tmp cursor ...) в двух ветках if - else или лучше каждый из этих курсоров объявлять в собственном триггере?
...
Рейтинг: 0 / 0
22.11.2002, 18:31:45
    #32071521
Зайцев Фёдор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по триггерам
Скоре да чем нет
...
Рейтинг: 0 / 0
22.11.2002, 20:15:28
    #32071544
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по триггерам
По аналогичному же вопросу уже было обсуждение. Вопрос ставился примерно так:

Что лучше писать одну универсальную процедуру с кучей параметров и вложенных IF или много отдельных небольших процедур под каждую ситуацию?

Так вот, как считают более опытные товарищи, лучше писать много маленьких процедур.

Я с этим уже согласен :) Напоролся...

Это поначалу кажется, что тут можно всего-лишь маленький IF поставить, а потом выясняется, что к этому надо еще с десяток IF в других местах, да еще флаги везде расставить.

Исходите из предположения, что ваша база будет в дальнейшем развиваться и вполне вероятно, что при удалении надо будет проделать какие-нибудь еще операции отличные от тех, которые будет при вставке или модификации.

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


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