powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Triger on insert
3 сообщений из 3, страница 1 из 1
Triger on insert
    #32022269
Moth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как я понимаю записи в таблицу добавляются последовательно.
Вообщем такой пердамонокль получается.
Есть таблица - хроника. Управление ведется через нее. Добавляем в нее записи, а чере тригер уже проверяем и управляем.

кусок текста тригера

Declare @HEADID int
Select @HEADID = HeadID FROM INSERTED

IF (Select Status from table1 where id = @HeadID ) > 0
BEGIN
RAISERROR 59001'Заявка еще получена до конца'
ROLLBACK TRANSACTION
RETURN
END
.....
EXEC ....
DECLARE CURSOR
CLOSE
DEALLOCATE

....
Update table1 set Status = 1 where id = @HeadID

Общий смысл, что бы из одной строки две не получилось.

А вот сегодня поимел такой результат
Хроника
ID UserID HeadID PlaceID DataFull
----------- ----------- ----------- ----------- ---------------------------
110457 16 8572 30 2002-02-06 15:13:50.773
110458 25 8572 30 2002-02-06 15:13:50.833

(2 row(s) affected)

Результат две строки

ID DocDataFull ZakazID
----------- --------------------------- -----------
41544 2002-02-06 15:13:50.783 8572
41545 2002-02-06 15:13:51.047 8572

(2 row(s) affected)

Система.
PIII 733 3*128 IBM 18 SCSI
SQL 7.0

moth.
...
Рейтинг: 0 / 0
Triger on insert
    #32022274
Axl Dead
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cудя по различию времени в одну секунду, вставилась одна строка два раза. Значит ошибка в триггере. Чтобы подобного не случилось поставьте ограничение UNIQUE. Если заказчик заказывает несколько раз то используйте составной ключ из ZakazID и ID.

Вот у меня другая проблема с триггерами. Я написал триггеры типа INSERT и Delete, работают нормально при вставке строк по запросу. А вот при репликации SnapShot не работает. Может знает кто в чем дело?
...
Рейтинг: 0 / 0
Triger on insert
    #32022280
Moth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Смотрим чуть внимательнее...
в итоге две разные строки.

ID DocDataFull ZakazID UserID
----------- --------------------------- ----------- ------
41544 2002-02-06 15:13:50.783 8572 16
41545 2002-02-06 15:13:51.047 8572 25

Проблема в кешировании скорее всего.
Вылечил
Update Table1 WITH (ROWLOCK) Set status = 1 Where ID = @HeadID
Неделю буду ждать повтора.
Индекс то что надо. Но дело в принципе.
Как такое может быть???
Moth.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Triger on insert
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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