Неадекватный триггер

wer
Дата: 06.12.2002 13:18:18
CREATE TRIGGER InsertSrokIspolnenija_tbl ON SrokIspolnenija_tbl
FOR INSERT
AS

DECLARE @IndexKart DECIMAL(28) -- индекс карточки
DECLARE @IndexSrok DECIMAL(28) -- индекс срока исполнения

-- получить индексы
SELECT @IndexKart = ipSrokIspolnenijaUchetnajaKartochka, @IndexSrok = idSrokIspolnenija FROM Inserted

-- print @IndexSrok

-- добавить к сроку исполнения еще и дату его установки
UPDATE SrokIspolnenija_tbl SET dDataPerenosa = CONVERT(VARCHAR(10), GETDATE(), 104) WHERE ipSrokIspolnenijaUchetnajaKartochka = @IndexKart AND idSrokIspolnenija <> @IndexSrok AND dDataPerenosa IS NULL

Проблема в том, что когда print закоментирован, то триггер работает неправильно, добавляется две записи. А в противном случае все работает нормально. В чем закавыка то?
Kilroy
Дата: 06.12.2002 13:44:48
Такой триггер не учитывает возможной вставки в таблицу более одной
строки. Есть ли гарантия, что в inserted всегда одна строка?
Jimmy
Дата: 06.12.2002 14:03:00
Триггер НЕ ДОБАВЛЯЕТ записей, а автоматически вызывается ПОСЛЕ вставки записи в таблицу.

Сейчас проверил (MS SQL7 + SP3) - PRINT не прерывает выполнение триггера, так что это - непричем.

Так что, скорее всего:
- глюк клиента
- существует триггер FOR UPDATE, который рекурсивно вставляет запись
- нужно накатить Service Pack (SP) MS SQL
wer
Дата: 06.12.2002 14:46:06
2 Kilroy

Вставляется всегда одна запись.

2 Jimmy

триггера на апдейт нет

где можно взять SP?
Jimmy
Дата: 06.12.2002 14:51:14
?
Дата: 06.12.2002 15:25:38
Sorry
А куда добавляется две записи.

Из приведенного примера непонятно.
wer
Дата: 07.12.2002 13:20:53
Записи добавляются в тут таблицу куда вставляется (SrokIspolnenija_tbl)