#sql #syntax #sql-update #ssms
#sql #синтаксис #sql-update #ssms
Вопрос:
Update T1 set T1.Field1 = y where T1.Field1 = x
Будет ли этот синтаксис работать?
Я хочу обновить поле до значения 40, где это поле в настоящее время равно 50. Это обновило бы несколько строк при первом запуске.
Я хотел бы надеяться, что это обновит нулевые строки при попытке запустить его во второй раз.
Комментарии:
1. Да, это должно сработать
2. … и это обновит 0 строк при последующих исполнениях.
3. Обратите внимание, что в таблицах есть столбцы , а не поля.
4. Имейте в виду, что обновления, затрагивающие 0 строк, все еще интересны . Потому что, например, они все равно будут вызывать срабатывание триггеров.
5. поле — это пересечение строки и столбца, если таблица содержит 10 строк и 10 столбцов, то в ней содержится 100 полей
Ответ №1:
Если я изложу это простыми словами
Update T1 set T1.Field1 = y where T1.Field1 = x
Update T1 set T1.Field1 = 40 where T1.Field1 = 50
Сначала, когда ваша таблица имеет значение 50 для field1 и все эти значения будут обновлены как 40 при запуске инструкции update .
При повторном запуске теперь столбец Field1 уже обновлен как 40, и это больше не 50, поэтому ничего не изменится, поскольку инструкция update обновляет только 50 как 40.