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

Откуда:
Сообщений: 109
Добрый день.
SQL Server 2008.
Имеется таблица Tb1 с полями "Kod" - уникальное поле и "Name".
А так же таблица Tb2 с полями "Kod", "Number" и "Name". "Kod" и "Number" - составной ключ.
Пример:
Tb1
Kod    Name
5213  nm1
5147  nm2

Tb2
Kod    Number  Name
5213  1        name1
5147  1        name2
5147  2        name3
5147  3        name4

Т.е. "Number" уникальный в пределах Kod.
Пишу триггер для Number:

CREATE TRIGGER Trigger_set_number
ON Tb2 for INSERT
AS
DECLARE @numb INT, @Kod INT
SELECT @Kod=i.Kod FROM Tb2 t, inserted i
WHERE t.Kod = i.kod

SELECT @numb=MAX(t.Number) from Tb2 t
WHERE t.Kod = @Kod

UPDATE Tb2
SET Number = Number + @numb+1
WHERE Tb2.Kod = @Kod

При вставке записи в Tb2 не считает Number, при обновление таблицы - удаляются все записи.
Подскажите, пожалуйста, в чем может быть дело?
Спасибо.
28 янв 15, 16:05    [17184145]     Ответить | Цитировать Сообщить модератору
 Re: Триггер  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
natnim,

проблема в вашем понимании работы триггеров, они не правильные, триггеры работают с наборами записей, а не с одной.
28 янв 15, 17:29    [17184723]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить