SQL Server Management Studio. Обновите набор T1 T1.Field1 = y, где T1.Field1 = x Будет ли это работать? - PullRequest
0 голосов
/ 07 марта 2019
Update T1 set T1.Field1 = y where T1.Field1 = x

Будет ли работать этот синтаксис?

Я хочу обновить поле до 40, где это поле в настоящее время равно 50. Это обновит несколько строк при первом запуске.

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

1 Ответ

1 голос
/ 07 марта 2019

Если я скажу это простыми словами

Update T1 set T1.Field1 = y where T1.Field1 = x

Update T1 set T1.Field1 = 40 where T1.Field1 = 50

Сначала, когда ваша таблица имеет значение 50 для field1, и все эти значения будут обновлены как 40, когда вы запустите оператор обновления.

Когда вы запускаете этот второй раз, теперь столбец Field1 уже обновлен как 40, и теперь он больше не 50, поэтому на него ничего не повлияет, поскольку оператор update обновляет только 50 как 40.

...