Я должен предложить это как лучший подход - вы не всегда можете позволить себе роскошь поля идентификации:
UPDATE m
SET [status]=10
FROM (
Select TOP (10) *
FROM messages
WHERE [status]=0
ORDER BY [priority] DESC
) m
Вы также можете сделать подзапрос настолько сложным, насколько захотите - объединение нескольких таблиц и т. Д. *
Почему это лучше? Он не зависит от наличия поля идентификации (или любого другого уникального столбца) в таблице messages
. Его можно использовать для обновления N верхних строк из любой таблицы, даже если эта таблица вообще не имеет уникального ключа.