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 закоментирован, то триггер работает неправильно, добавляется две записи. А в противном случае все работает нормально. В чем закавыка то?
Jimmy
Дата: 06.12.2002 14:03:00
Триггер НЕ ДОБАВЛЯЕТ записей, а автоматически вызывается ПОСЛЕ вставки записи в таблицу.
Сейчас проверил (MS SQL7 + SP3) - PRINT не прерывает выполнение триггера, так что это - непричем.
Так что, скорее всего:
- глюк клиента
- существует триггер FOR UPDATE, который рекурсивно вставляет запись
- нужно накатить Service Pack (SP) MS SQL