2013-09-25 6 views
0

При обновлении таблицы в MSSQL я хочу выполнить определенную задачу.Обновление Trigger MSSQL - SQL Server

Теперь у меня есть триггер обновления для требуемой таблицы, и моя задача (сценарий) запускается при обновлении записи.

Теперь, когда пользователь сохраняет существующую запись из Интернета, мой триггер обновления выполняет задание, которое я написал. Но когда пользователь сохраняет с веб-страницы без изменения какой-либо записи, время, когда триггер обновления не работал, поскольку никакие записи не изменяются.

Я бы хотел запустить сценарий, даже если запись не была изменена. Как мне это сделать?

+1

Ваш сценарий мог бы быть в SP и используется либо в триггере или вызывается из кода –

+0

Это SP, и я зову его в триггере. Вызов из кода не является вариантом. Но триггер не будет срабатывать, если запись не будет изменена. –

+1

Что именно вы имеете в виду: «запись не изменяется»? Если ваше приложение отправляет инструкцию 'UPDATE', триггер будет запущен, даже если обновление установит столбцы на то же значение, что и раньше. Если ваше приложение ** не ** отправляет 'UPDATE' в базу данных (потому что пользователь ничего не изменил), то нет возможности запуска триггера. –

ответ

0

Думаю, вам нужно использовать триггер INSTEAD OF UPDATE. По умолчанию запускается ПОСЛЕ ОБНОВЛЕНИЯ. Но тогда вы должны установить инструкцию обновления внутри триггера. Для получения дополнительной информации,

INSTEAD OF UPDATE Triggers.

+0

Это не поможет. Триггер изменит некоторые другие значения таблиц. Тот факт, что значения не изменились в исходной таблице, где находится триггер, SQL не переписывает значения, поскольку они такие же, и триггер обновления никогда не запускается. Но независимо от того, изменились ли значения или нет, я хочу выполнить определенную задачу по обновлению другой таблицы, которая выполняется в триггере обновления, который не срабатывает. Его, как бесконечный цикл проблемы , вызывающий SP или скрипт после обновления из пользовательского интерфейса, не является опцией btw Я хочу сделать это, используя только триггеры –

+0

Я помечаю это как ответ по разным причинам. Решение моей проблемы было новой таблицей, в которой будут храниться значения второй таблицы с использованием триггера на второй таблице. Затем используйте sql-задание, чтобы периодически проверять новые записи в таблице и работать с ним и удалять их в конце. –