Триггер не запускается из интерфейса - PullRequest
0 голосов
/ 01 сентября 2009

У меня есть таблица с триггером после обновления в SQL 2005. Если я обновляю напрямую с помощью SQL QUERY, триггер работает нормально.

Эта таблица связана с помощью набора данных и адаптера таблицы с DXDBGrid (Dev. Express).

Если пользователь обновляет сетку, базовые данные обновляются, но триггер не запускается.

У меня есть PK на таблице, автоматически сгенерированная команда UPDATE в адаптере таблицы и т. Д. Все работает нормально, кроме триггера, не запускаемого ...

Почему, о, почему!?

Заранее спасибо.

Franklin.

РЕДАКТИРОВАТЬ: код триггера:

ALTER TRIGGER [dbo]. [TrgUpdateZonasAsignadas] ПО ДБО. ZonasAsignadas ПОСЛЕ ОБНОВЛЕНИЯ КАК НАЧАТЬ

IF NOT(UPDATE(ActualizadoPDA))
BEGIN
   UPDATE ZonasAsignadas SET ActualizadoPDA=0
      WHERE IdUsuarioZona IN (SELECT Inserted.IdUsuarioZona FROM Inserted)   
END

END

1 Ответ

1 голос
/ 13 февраля 2014

Этот код срабатывает только при изменении столбца «ActualizadoPDA». Если ваша сетка поставляется с тем же значением ActualizadoPDA, которое было раньше, триггер не сработает, , даже если он включен в оператор обновления.

Похоже, что вы хотите, это что-то вроде «ЕСЛИ СУЩЕСТВУЕТ (ВЫБЕРИТЕ 1 ИЗ ВСТРОЕННОГО ГДЕ ActualizadoPDA = 0)» вместо этого. Или, если вы просто хотите отразить значение, полностью исключите оператор IF и просто обновите его. Если все проиндексировано правильно, время, потраченное на это, должно быть незначительным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...