чтобы решить, какой именно 10. Ваш пример с временной таблицей работает, но он опирается на столбец id.
але я хочу сделать это:
UPDATE TOP (10) messages SET status=10 WHERE status=0 ORDER BY priority DESC;
По-английски: я хочу получить 10 лучших (статус = 0) сообщений из БД и заблокировать их (статус = 10). Сообщение с более высоким приоритетом должно быть получено первым.
к сожалению, MS SQL не разрешает в заказе указание по порядку.
Во всяком случае, как это обойти?