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

Откуда:
Сообщений: 247
не могу найти в у классиков, где указано, что set в update работает справа налево:
т.е. после

update my_table set col1=1, col2=col1

хочу получить гарантию, что в col2 будет 1.
17 апр 13, 13:42    [14192587]     Ответить | Цитировать Сообщить модератору
 Re: update в tsql  [new]
iap
Member

Откуда: Москва
Сообщений: 47049
зеленый админ,

полям значения присваиваются "параллельно", то есть, col2 получит старое значение col1.
зеленый админ
хочу получить гарантию, что в col2 будет 1.
update my_table set col1=1, col2=1
Вот гарантия!
17 апр 13, 13:45    [14192612]     Ответить | Цитировать Сообщить модератору
 Re: update в tsql  [new]
зеленый админ
Member

Откуда:
Сообщений: 247
зеленый админ,
тьфу, слева направо, естно
17 апр 13, 13:45    [14192616]     Ответить | Цитировать Сообщить модератору
 Re: update в tsql  [new]
iap
Member

Откуда: Москва
Сообщений: 47049
зеленый админ
зеленый админ,
тьфу, слева направо, естно
Какая разница!
17 апр 13, 13:47    [14192626]     Ответить | Цитировать Сообщить модератору
 Re: update в tsql  [new]
Glory
Member

Откуда:
Сообщений: 104760
зеленый админ
где указано, что set в update работает справа налево:

Нигде. Потому что это не работает ни слева направо, ни справа налево
В разных выражениях вы всегда имеете доступ к значению поля до начала апдейта
17 апр 13, 13:47    [14192633]     Ответить | Цитировать Сообщить модератору
 Re: update в tsql  [new]
зеленый админ
Member

Откуда:
Сообщений: 247
iap,

жаль, мне надо получить смещение...
типа
update my_table
set col1=col2, col2=col3, col3=col4
go
alter table my_table drop column col4;
17 апр 13, 13:47    [14192634]     Ответить | Цитировать Сообщить модератору
 Re: update в tsql  [new]
update from
Guest
зеленый админ
не могу найти в у классиков, где указано, что set в update работает справа налево:
т.е. после

update my_table set col1=1, col2=col1

хочу получить гарантию, что в col2 будет 1.


update t set
col1 = new_col1
, col2 = new_col1
from (
select *, new_col1 = 1
from my_table
) t
17 апр 13, 13:47    [14192635]     Ответить | Цитировать Сообщить модератору
 Re: update в tsql  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22551
ой, а что такое смещение?
17 апр 13, 13:48    [14192643]     Ответить | Цитировать Сообщить модератору
 Re: update в tsql  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10234
Блог
зеленый админ
iap,

жаль, мне надо получить смещение...
типа
update my_table
set col1=col2, col2=col3, col3=col4
go
alter table my_table drop column col4;


sp_rename + drop
17 апр 13, 13:50    [14192653]     Ответить | Цитировать Сообщить модератору
 Re: update в tsql  [new]
iap
Member

Откуда: Москва
Сообщений: 47049
зеленый админ
iap,

жаль, мне надо получить смещение...
типа
update my_table
set col1=col2, col2=col3, col3=col4
go
alter table my_table drop column col4;
А это не работает что ли?
17 апр 13, 13:53    [14192667]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить