में शीर्ष 100 रिकॉर्ड कैसे अपडेट कर सकता हूं मैं SQL सर्वर में शीर्ष 100 रिकॉर्ड्स अपडेट करना चाहता हूं। मेरे पास T1
फ़ील्ड F1
और F2
के साथ एक तालिका है। T1
में 200 रिकॉर्ड हैं। मैं शीर्ष 100 रिकॉर्ड में F1
फ़ील्ड को अपडेट करना चाहता हूं। मैं SQL सर्वर में TOP 100
के आधार पर अपडेट कैसे कर सकता हूं?मैं एसक्यूएल सर्वर
उत्तर
ध्यान दें, कोष्ठकों अद्यतन बयान के लिए आवश्यक हैं:
update top (100) table1 set field1 = 1
कोई भी सुझाव 'ऑर्डर का उपयोग कैसे करें साथ ही '? –
@ जोपहिलिप्स – jjxtra
द्वारा ऑर्डर के लिए मार्टिन स्मिथ के उत्तर का उपयोग करें, हालांकि यह शीर्ष 100 रिकॉर्ड नहीं हैं, लेकिन केवल 100 मनमाने ढंग से चुने गए रिकॉर्ड हैं। शीर्ष 100 में रिकॉर्ड्स को रैंक करने के लिए कुछ ऑर्डर शामिल होंगे। –
update tb set f1=1 where id in (select top 100 id from tb where f1=0)
इस निर्माण का उपयोग करना धीमा धीमा है ... – Lu4
एक ORDER BY
बिना TOP
के पूरे विचार बहुत मतलब नहीं है। आपको एक निरंतर परिभाषा की आवश्यकता है कि कौन सी दिशा "ऊपर" है और जो शीर्ष की अवधारणा के लिए सार्थक होने के लिए "नीचे" है।
फिर भी SQL सर्वर इसे अनुमति देता है लेकिन doesn't guarantee a deterministic result।
स्वीकृत उत्तर में UPDATE TOP
वाक्यविन्यास ORDER BY
खंड का समर्थन नहीं करता है, लेकिन नीचे दिए गए वांछित सॉर्ट ऑर्डर को परिभाषित करने के लिए सीटीई या व्युत्पन्न तालिका का उपयोग करके यहां निर्धारक अर्थशास्त्र प्राप्त करना संभव है।
;WITH CTE AS
(
SELECT TOP 100 *
FROM T1
ORDER BY F2
)
UPDATE CTE SET F1='foo'
डाउनवोट के कारण? 'ऑर्डर' के बिना 'TOP' ** ** अर्थहीन है। आपको बस एक अपरिभाषित '100' पंक्तियां मिलती हैं। –
अर्थहीन है कि किसी वास्तविक दुनिया में – Rohit
का उपयोग नहीं किया गया है, आप अर्थहीन कहते हैं लेकिन यह सच नहीं है।मैं मानता हूं कि,/आमतौर पर /, जब आप 'TOP' बाधाओं का उपयोग कर रहे हैं, तो आपको इसे' ORDER BY' 'के साथ उपयोग करना चाहिए क्योंकि आप जो चाहते हैं उसमें "सबसे अधिक" या "कम से कम" की तरह है। अन्य मामलों में, हालांकि, आप केवल एक मिलान रिकॉर्ड प्राप्त करने में रुचि रखते हैं। आज मुझे पसंद है! मुझे एक समय में डेटा मुद्दों (चक्र) को ठीक करने की आवश्यकता थी। पूरी फिक्स प्रक्रिया में एक डीबी स्क्रिप्ट, कुछ उपयोगकर्ता हस्तक्षेप, और कुछ अनुप्रयोग संचालन शामिल थे। हमें परवाह नहीं था कि किस रिकॉर्ड को पहले संभाला गया था। हमने बस देखभाल की कि हम उन्हें एक समय में संभालने वाले थे। – MetaFight
, SET ROWCOUNT {number};
UPDATE
क्वेरी
SET ROWCOUNT 100;
UPDATE Table SET ..;
SET ROWCOUNT 0;
से पहले इस्तेमाल किया जा सकता यह कम से कम पदावनत किया गया है 100 पंक्तियां
करने के लिए अद्यतन को सीमित कर देगा एसक्यूएल 2005 के बाद से, लेकिन एसक्यूएल 2012 के रूप में यह अभी भी काम करता है। संपादित करें: यह SQL 2014 में मारे गए थे। सेट ROWCOUNT का उपयोग SQL सर्वर 2014 और ऊपर में DELETE, INSERT, और UPDATE कथन को प्रभावित नहीं करेगा।
सेट ROWCOUNT ट्रिगर्स को प्रभावित करता है साथ ही आदेश को अद्यतन किया जाता है। यदि आपके पास कैस्केड डिलीट सेट है, तो यह बच्चे की तालिका में बाल पंक्तियों की पंक्ति संख्या से अधिक होने पर लेनदेन में विफल हो सकती है। – EricI
इसके साथ, सेट ROWCOUNT @RowCountParameter; मान्य वाक्यविन्यास है, जबकि तालिका शीर्ष से ऊपर @RowCountParamter चुनें * अवैध है। यदि आपको अद्यतन होने वाली पंक्तियों को कॉन्फ़िगर करने की आवश्यकता है, तो SET ROWCOUNT # वर्तमान में बेहतर विकल्प है, बशर्ते आपके पास कैस्केड डिलीट सक्षम के साथ बाल तालिकाओं न हों। – EricI
क्या भी कूलर है तथ्य यह है कि आप जो (और के माध्यम से TOP
कितने) पंक्ति (यों) को अद्यतन करने का चयन करने के एक इनलाइन टेबल-वैल्यूड समारोह का उपयोग कर सकते है। यही कारण है:
UPDATE MyTable
SET [email protected]
FROM tvfSelectLatestRowOfMyTableMatchingCriteria(@Param1,@Param2,@Param3)
तालिका महत्वपूर्ण समारोह के लिए आप पंक्ति का चयन करने के कुछ दिलचस्प है की तरह अद्यतन करने के लिए:
CREATE FUNCTION tvfSelectLatestRowOfMyTableMatchingCriteria
(
@Param1 INT,
@Param2 INT,
@Param3 INT
)
RETURNS TABLE AS RETURN
(
SELECT TOP(1) MyTable.*
FROM MyTable
JOIN MyOtherTable
ON ...
JOIN WhoKnowsWhatElse
ON ...
WHERE [email protected] AND ...
ORDER BY MyTable.SomeDate DESC
)
..., और (मेरी विनम्र राय में) वहाँ झूठ असली शक्ति UPDATE
कथन के सिंटैक्स को सरल बनाने के साथ ही केवल शीर्ष चयनित पंक्तियों को निर्धारित करने के लिए।
- 1. कैसे मैं एसक्यूएल सर्वर
- 2. मैं बड़ी एसक्यूएल सर्वर तालिका
- 3. मैं एसक्यूएल सर्वर एमजीएमटी स्टूडियो
- 4. एसक्यूएल सर्वर: एसक्यूएल क्वेरी
- 5. एसक्यूएल एसक्यूएल सर्वर
- 6. टी-एसक्यूएल (एसक्यूएल सर्वर)
- 7. एसक्यूएल: एसक्यूएल सर्वर
- 8. एसक्यूएल सर्वर
- 9. एसक्यूएल सर्वर
- 10. एसक्यूएल सर्वर
- 11. एसक्यूएल सर्वर
- 12. एसक्यूएल सर्वर
- 13. एसक्यूएल सर्वर
- 14. एसक्यूएल सर्वर
- 15. एसक्यूएल सर्वर
- 16. एसक्यूएल सर्वर
- 17. एसक्यूएल सर्वर
- 18. एसक्यूएल सर्वर
- 19. एसक्यूएल सर्वर
- 20. एसक्यूएल सर्वर
- 21. एसक्यूएल सर्वर
- 22. एसक्यूएल सर्वर
- 23. एसक्यूएल सर्वर
- 24. एसक्यूएल सर्वर
- 25. एसक्यूएल सर्वर
- 26. एसक्यूएल सर्वर
- 27. एसक्यूएल सर्वर
- 28. एसक्यूएल सर्वर
- 29. एसक्यूएल सर्वर
- 30. एसक्यूएल सर्वर
यह लिंक आपको मदद कर सकता है http://www.codefari.com/2015/10/how-can-i-update-top-10-records-in-sql.html – Singh