मैं एक निम्न क्वेरी है:एसक्यूएल अद्यतन के साथ शीर्ष अद्यतन?
UPDATE TOP (@MaxRecords) Messages
SET status = 'P'
OUTPUT inserted.*
FROM Messages
where Status = 'N'
and InsertDate >= GETDATE()
संदेश तालिका में प्राथमिकता स्तंभ है और मैं पहली बार उच्च प्राथमिकता संदेशों seleci करना चाहते हैं। तो मुझे एक आदेश की आवश्यकता है। लेकिन मुझे आउटपुट सॉर्ट करने की आवश्यकता नहीं है लेकिन अपडेट रन से पहले डेटा सॉर्ट किया गया है।
जहां तक मुझे पता है कि अद्यतन विवरण में ऑर्डर जोड़ना संभव नहीं है। कोई अन्य विचार?
मीटर।
;with cte as (
select top (@MaxRecords)
status
from Messages
where Status = 'N' and InsertDate >= getdate()
order by ...
)
update cte set
status = 'P'
output inserted.*
यह एक का उपयोग करता है:
[SQL अद्यतन शीर्ष 1 पंक्ति क्वेरी] का संभावित डुप्लिकेट (http://stackoverflow.com/questions/3860975/sql-update-top1-row-query) – fabriciorissetto
संभावित डुप्लिकेट [एमएस एसक्यूएल का उपयोग करके अपडेट और ऑर्डर कैसे करें ] (http://stackoverflow.com/questions/655010/how-to-update-and-order-by-using-ms-sql) – Athafoud