Bir aşağıdaki sorgu var: Öncelikli sütun vardır Mesajlar tablodaSQL SİPARİŞ BY ile ÜSTÜN GÜNCELLEME?
UPDATE TOP (@MaxRecords) Messages
SET status = 'P'
OUTPUT inserted.*
FROM Messages
where Status = 'N'
and InsertDate >= GETDATE()
ve ben ilk yüksek öncelikli mesajları seleci istiyorum. Bu yüzden bir siparişe ihtiyacım var. Ancak, sıralı çıktıya sahip olmamam, güncelleme işlemlerinden önce verileri sıralamam gerekmiyor.
Bildiğim kadarıyla UPDER deyimine ORDER BY eklemek mümkün değil. Başka fikirlerin var mı?
m.
;with cte as (
select top (@MaxRecords)
status
from Messages
where Status = 'N' and InsertDate >= getdate()
order by ...
)
update cte set
status = 'P'
output inserted.*
Bu seferki kullanır:
[SQL güncelleştirme top1 satır sorgusu] 'nın olası kopyası (http://stackoverflow.com/questions/3860975/sql-update-top1-row-query) – fabriciorissetto
Olası çoğaltılacak [Nasıl güncellenir ve ms sql kullanarak sipariş verilebilir ] (http://stackoverflow.com/questions/655010/how-to-update-and-order-by-using-ms-sql) – Athafoud