Поскольку обновление не возвращает никаких данных, а 'order by' сортирует набор результатов, ORDER BY
не с чем работать, и то, что вы ищете, не может быть сделано.
Если вы хотитеназначьте только одну книгу, которую вы можете обновить, используя объединение сверху 1 из вашего набора.
UPDATE b0 SET assigneduser = 1
FROM b0
INNER JOIN
(SELECT top 1 id FROM books
WHERE user = 1 OR user is null
AND status =7) b1 ON b1.id = b0.id
или, возможно, менее загадочный
UPDATE user SET assigneduser = 1
WHERE id IN
(SELECT top 1 id FROM books
WHERE user = 1 OR user is null
AND status =7) b1 ON b1.id = b0.id
Является ли эта стратегия устойчивой в отношении параллелизма, зависитсемантика транзакций.