Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 подтвердить истину практикой(UPDATE по JOIN)  [new]
МистерШоу
Member

Откуда:
Сообщений: 21336
тут меня коллега уверяет, что в MS SQL

atabe01(anID(PK), cnt)
atabe01(anID(PK), anID_01(FK to atabe01.anID))

UPDATE
atabe01
SET
cnt = cnt_ + 1
FROM
atable01
JOIN
atable02
ON
atable01.anID = atable02.anID_01

в итоге даст для каждой записи anID
atabe01.cnt = (SELECT COUNT(atable01.anID) FROM atable02 WHERE atable02.anID_01 = atabe01.anID)

а я не верю, совсем, потому что сам вроде бы так когда-то наивно думал :)
А MS SQL под рукой нет. Что, прафда штоль?! Может фэнтастик нью абилитиз?!
Кто-нить может дать фактуру?

Пресветлый старец Фалоим Московскый.
тимтэг:некоммерческое товарищество "Напиджак",
издательство "Московский Пустомолец"

Картинка с другого сайта.
27 апр 12, 12:16    [12478923]     Ответить | Цитировать Сообщить модератору
 Re: подтвердить истину практикой(UPDATE по JOIN)  [new]
Glory
Member

Откуда:
Сообщений: 104751
МистерШоу
Что, прафда штоль?!

неправда
27 апр 12, 12:23    [12478964]     Ответить | Цитировать Сообщить модератору
 Re: подтвердить истину практикой(UPDATE по JOIN)  [new]
МистерШоу
Member

Откуда:
Сообщений: 21336
Glory
МистерШоу
Что, прафда штоль?!

неправда


Вот! Сам Glory рек! Пойду морально уничтожу бедолагу :)
27 апр 12, 12:25    [12478979]     Ответить | Цитировать Сообщить модератору
 Re: подтвердить истину практикой(UPDATE по JOIN)  [new]
iljy
Member

Откуда:
Сообщений: 8711
МистерШоу,

достаточно открыть BOL и наткнуться на фразу типа "не помню дословно) "при наличии множества записей, соответствующих изменяемой, результат не определен". Т.е. может получиться COUNT, а может и нет.
27 апр 12, 12:34    [12479042]     Ответить | Цитировать Сообщить модератору
 Re: подтвердить истину практикой(UPDATE по JOIN)  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
iljy
Т.е. может получиться COUNT, а может и нет.
Скоре имеется ввиду что не определена какая строка из множества попадётся. COUNT точно не будет.
В плане виден неуловимый Джо - оператор Any.

Для MERGE вообще в ошибку вылетит о множественном изменении.
27 апр 12, 13:03    [12479242]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить