Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как грамотно создать триггер?  [new]
foosh
Member

Откуда:
Сообщений: 188
Люди добрые, подскажите дилетанту, как грамотно создать INSERT триггер.

Проблема такая. Есть таблица (в данном случае она называется т_Раскладка) и при вставке новой записи нужно инициировать значения некоторых полей этой записи. Не знаю, насколько это корректно, но я делал это, например, таким способом.

IF (SELECT рск_Формы FROM inserted) < 2
UPDATE т_Раскладка
SET рск_Форм = 
CASE
	WHEN (INS.рск_Формы <= 0)THEN 0
	ELSE INS.рск_Цветность + ABS(CAST (INS.рск_Лак AS int)) + ABS(CAST (INS.рск_Хол_тиснение AS int))
END
FROM т_Раскладка RS INNER JOIN inserted INS ON RS.рск_ID = INS.рск_ID

При вставке одной записи это дает нужный эффект.

Однако, если выполняется вставка нескольких записей, скажем через INSERT INTO, то, естественно, выдает ошибку, поскольку - SELECT рск_Формы FROM inserted - выдает несколько записей.

Подскажите, плиз, как сделать это грамотно?
20 май 11, 13:40    [10684229]     Ответить | Цитировать Сообщить модератору
 Re: Как грамотно создать триггер?  [new]
Зайцев Фёдор
Member

Откуда: Лужки
Сообщений: 5308
убрать
IF (SELECT рск_Формы FROM inserted) < 2
и добавить
where INS.рск_Формы < 2
20 май 11, 13:47    [10684313]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить