Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

बड़ी संख्या में पंक्तियों को अपडेट करें - SQL सर्वर 2005

क्या आपके पास लक्ष्य तालिका में अनुक्रमित पहचान कॉलम है? यह उन कुछ मामलों में से एक है जहां मैं वास्तव में WHILE लूप का उपयोग करना पसंद करता हूं। आपके द्वारा पोस्ट किए गए लिंक में समाधान के साथ मुख्य समस्या खराब अनुक्रमणिका उपयोग है।

    DECLARE @START INT, @FINISH INT, @LOOPEND INT
    SELECT @START = 1, @FINISH = 5000, @LOOPEND = MAX(ID)
    from Bla 

    WHILE @START <= @LOOPEND
    BEGIN
        update a
        set XML = b.xml
        from Bla as a
        inner join #temp as b on a.i = b.i
        WHERE a.ID BETWEEN @START AND @FINISH

        SET @START = @FINISH + 1
        SET @FINISH = @FINISH + 5000
    END

ऐसे मामलों में जहां आपके पास एक सरोगेट कुंजी (प्राथमिक कुंजी के रूप में पहचान कॉलम) है, जो इतना असामान्य नहीं है, इससे प्राथमिक कुंजी पर एक साधारण अनुक्रमणिका की तलाश होगी और यह केवल वृद्धि राशि (उदाहरण में 5000) द्वारा समायोज्य है।>


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डेस्कटॉप ऐप के साथ SQL सर्वर एक्सप्रेस डेटाबेस को तैनात करें?

  2. उप प्रश्नों के साथ कथन सम्मिलित करें

  3. SqlServer में Asp.Net 4.0 भंडारण सत्र

  4. SQL सर्वर पूर्ण पाठ अनुक्रमणिका

  5. SQL सर्वर में डेटा फ़ाइलों के प्रबंधन के मूल सिद्धांत