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

किसी अन्य तालिका के कर्सर में मानों के आधार पर एक तालिका का SQL अद्यतन

आप पहले अपडेट से पहले दो फ़ेच करते हैं। अपने लूप को इस प्रकार पुनर्गठित करने का प्रयास करें:

DECLARE @so VARCHAR(50)
DECLARE @line VARCHAR(50)
DECLARE @pdate DATETIME
DECLARE @reason1 VARCHAR(50)
DECLARE @reason2 VARCHAR(50)
DECLARE @area VARCHAR(50)

DECLARE mycursor CURSOR LOCAL FAST_FORWARD FOR 
SELECT [bp_so_number],[bp_line],[bp_production_date],[bp_reason1],[bp_reason2],[bp_area]
 FROM [Workflow].[dbo].[v_OTD_PostSrc]

 OPEN mycursor
 -- Always true
 WHILE 1 = 1
 BEGIN
    -- Get next record from cursor
    FETCH NEXT FROM mycursor
               INTO @so, @line, @pdate, @reason1, @reason2, @area;
    -- If there was a record @@fetch_status will be 0; 
    -- if not, or in case of an error, break the loop
    IF @@FETCH_STATUS <> 0
       break
    UPDATE otd_data SET [email protected], [email protected], [email protected] 
    WHERE [Order Number][email protected] AND [email protected] AND [Schedule Date][email protected] AND [Qty Open]>0
    --SELECT * FROM otd_data WHERE [Order Number][email protected] AND [email protected] AND [Schedule Date][email protected]
 END

CLOSE mycursor
DEALLOCATE mycursor

मैंने LOCAL और FAST_FORWARD कर्सर के लिए विकल्प। FAST_FORWARD पर दस्तावेज़ीकरण:




  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. मैं स्क्रिप्ट के भीतर से SQL सर्वर स्क्रिप्ट का टाइमआउट कैसे सेट करूं?

  3. जॉइन के माध्यम से SQL सर्वर में अद्यतन क्वेरी

  4. डेटाबेस में डुप्लिकेट अस्थायी रिकॉर्ड मर्ज करें

  5. एंटिटी फ्रेमवर्क सभी विदेशी कुंजी स्तंभों को अनुक्रमित करता है