powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Использование ORDER BY в UPDATE
8 сообщений из 8, страница 1 из 1
Использование ORDER BY в UPDATE
    #39634608
Pabl0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите как использовать ORDER BY в UPDATE, видел пару вариантов в роли таких конструкций:

Код: sql
1.
2.
3.
4.
5.
6.
7.
With cte As
(
SELECT id,Number,
ROW_NUMBER() OVER (ORDER BY id DESC) AS RN
FROM Test
)
UPDATE cte SET Number=RN



но может можно как то проще?

Мой пример:


Код: sql
1.
2.
3.
4.
5.
		UPDATE TOP (1) dbo._pc_TariffValue
		SET validTill = GETDATE()
        OUTPUT Deleted.Id INTO @tariffValueIds
		WHERE planId   = @TariffPlanId 
		ORDER BY validFrom DESC
...
Рейтинг: 0 / 0
Использование ORDER BY в UPDATE
    #39634630
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pabl0Подскажите как использовать ORDER BY в UPDATE, видел пару вариантов в роли таких конструкций:

Код: sql
1.
2.
3.
4.
5.
6.
7.
With cte As
(
SELECT id,Number,
ROW_NUMBER() OVER (ORDER BY id DESC) AS RN
FROM Test
)
UPDATE cte SET Number=RN




но может можно как то проще?

Мой пример:


Код: sql
1.
2.
3.
4.
5.
		UPDATE TOP (1) dbo._pc_TariffValue
		SET validTill = GETDATE()
        OUTPUT Deleted.Id INTO @tariffValueIds
		WHERE planId   = @TariffPlanId 
		ORDER BY validFrom DESC

В UPDATE ORDER BY не играет никакой роли, за исключением использования функции IDENTITY().
В первом показанном примере ORDER BY относитсчя не к UPDATE, а к ROW_NUMBER().
...
Рейтинг: 0 / 0
Использование ORDER BY в UPDATE
    #39634648
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторМой пример:


UPDATE TOP (1) dbo._pc_TariffValue
SET validTill = GETDATE()
OUTPUT Deleted.Id INTO @tariffValueIds
WHERE planId = @TariffPlanId
ORDER BY validFrom DESC
пример чего? как сдулать непонятно, что дажже не компилируемое?

ну и
авторThe rows referenced in the TOP expression used with INSERT, UPDATE, or DELETE are not arranged in any order.
...
Рейтинг: 0 / 0
Использование ORDER BY в UPDATE
    #39634713
Eleanor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pabl0,

Посмотрите в документации пример использования UPDATE с ORDER BY и TOP:
Код: sql
1.
2.
3.
4.
5.
UPDATE HumanResources.Employee  
SET VacationHours = VacationHours + 8  
FROM (SELECT TOP 10 BusinessEntityID FROM HumanResources.Employee  
     ORDER BY HireDate ASC) AS th  
WHERE HumanResources.Employee.BusinessEntityID = th.BusinessEntityID;


Но это не проще. Такого синтаксиса, как у вас, не существует.
...
Рейтинг: 0 / 0
Использование ORDER BY в UPDATE
    #39634746
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iapза исключением использования функции IDENTITY().Чушь написал.
Функция IDENTITY() используется только в SELECT ... INTO.
К UPDATE не имеет никакого отношения.
...
Рейтинг: 0 / 0
Использование ORDER BY в UPDATE
    #39634843
Eleanor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pabl0видел пару вариантов в роли таких конструкций:
Подозреваю, в своих примерах с cte вы имели в виду одну из этих двух конструкций:
Код: sql
1.
2.
3.
4.
5.
6.
7.
WITH cte AS
(
SELECT *, ROW_NUMBER() OVER (ORDER BY id DESC) AS RN
FROM Test
)
UPDATE cte SET Number = <какое-то значение>
WHERE RN <= 10


Код: sql
1.
2.
3.
4.
5.
6.
7.
WITH cte AS
(
SELECT TOP (10) *
FROM Test
ORDER BY id DESC
)
UPDATE cte SET Number = <какое-то значение>
...
Рейтинг: 0 / 0
Использование ORDER BY в UPDATE
    #39634851
Фотография шК0ДЕР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, возможно, задам глупый вопрос, но зачем в UPDATE использовать ORDER BY кляузу?
Разве важен порядок, при котором будут данные обновлены единым запросом?
Или прикручивать тяжелый (в некоторых случаях) оператор - новомодный тренд, чтобы заказчик видел работу программы? (грузит долго - значит работает!)
...
Рейтинг: 0 / 0
Использование ORDER BY в UPDATE
    #39634854
Фотография шК0ДЕР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
понедельник - день тяжелый. Не сразу понял чего автор хочет) Дошло
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Использование ORDER BY в UPDATE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]