Выбрать и обновить в одном запросе - PullRequest
0 голосов
/ 19 июля 2010

у меня есть таблица контактов, содержащая имя emailid phoneno message repliedmessage в виде полей, по умолчанию поле отвеченного сообщения равно нулю после ответа на конкретное сообщение, я обновляю это поле, но в то же время я также хочу получить другие значениятакже как name и emailid, используя операторы select

1 Ответ

1 голос
/ 19 июля 2010

Вы говорите, что обновляете несколько строк или только одну?

Если вы обновляете несколько строк, вы можете выбрать идентификаторы затронутых строк во временной таблице, выполнить обновление, а затем вернуть объединениеидентификаторы таблицы tmp в обновленной таблице.

Если вы обновляете одну строку, просто выполните выбор в этой строке после обновления.

Плохо для удобства сопровождения пробовать две операциив то же время, если логика ситуации не прояснит, позже, что это требуется.

В таблице всегда может быть простое поле LastUpdated DATETIME.Тогда вам просто нужна переменная, которую вы устанавливаете для getdate () и используете во время обновления.После обновления просто возвращайте каждую строку, где LastUpdated соответствует переменной datetime.

Например:

declare @opTime datetime
set @opTime = getdate()

update .... (...., LastUpdated) values (....., @opTime)

select * from ... where LastUpdated = @opTime
...