Я хочу запускать этот код только один раз в задании агента, которое срабатывает каждые 5 минут:
UPDATE mytable
SET text_column = (CONCAT('Added text - ', text_column))
WHERE status IN ('status1', 'status2', 'status3')
AND other_criteria IN ('other_criteria1', 'other_criteria2', 'other_criteria3');
Новые записи могут вставляться в любое время дня и ночи, поэтому задание запускается каждые 5 минут.
text_column
может быть или не быть NULL, когда запись вставлена (что не имеет значения, но мешает мне использовать ISNULL в моем предложении where).
status
может измениться «на лету» до запуска задания (что также не имеет значения, за исключением того, что я не могу обновить вышеупомянутый запрос, чтобы он выполнялся только с указанными статусами, а затем изменить статус после того, как будет выполнено обновление) это может произойти снова [потому что другие транзакции могут все еще происходить, пока запись находится в каком-либо состоянии].)
other_criteria
обычно является статической информацией, но она ни в коем случае не уникальна ...
Итак, я хочу, чтобы это произошло в основном:
5-минутное задание выполняется - новая запись = status1 & other_criteria1 получает значение text_column равным 'Added_text - (text_column)'
Тогда я хочу избежать установки для текстового столбца этой записи значения «Добавленный текст - Добавленный текст - (text_column)» при следующем запуске задания, даже если оно все еще соответствует «status» и «other_criteria» в предложении where. ..
Возможно ли это без уточнения в моем предложении where?