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

SQL सर्वर में एक रिकॉर्डसेट पर लूपिंग

आपको कर्सर या अन्य प्रक्रियात्मक कोड के उपयोग के बिना कुछ कथनों में ऐसा करने में सक्षम होना चाहिए। बस सुनिश्चित करें कि यह सब एक ही लेन-देन में हो:

BEGIN TRANSACTION

INSERT INTO crrsql.dbo.AR_Transactions (
    cashier_id,
    cust_num,
    balance,
    transaction_date)
SELECT
    100199,
    cust_num,
    -acct_balance,
    DATEADD(MINUTE, -30, current_date)
FROM crrsql.dbo.Customers
WHERE acct_balance <> 0

UPDATE crrsql.dbo.Customers SET acct_balance = 0 WHERE acct_balance <> 0

COMMIT TRANSACTION

बेशक, उचित त्रुटि प्रबंधन जोड़ें और पहले इसका परीक्षण करना सुनिश्चित करें।

साथ ही, मैंने आपकी कुछ टेबल और कॉलम नामों में थोड़ा बदलाव किया है। मैं यह नहीं जानना चाहता कि कौन सी विशिष्ट नामकरण परंपराएं दूसरों की तुलना में बेहतर हैं, लेकिन कम से कम कम से कम स्तिर रहो। यदि आप अंडरस्कोर का उपयोग करने जा रहे हैं, तो उनका उपयोग करें। यदि आप इसके बजाय ऊंट-बैक नोटेशन का उपयोग करने जा रहे हैं तो उसका उपयोग करें, लेकिन उन्हें मिलाएं नहीं। वही बहुवचन बनाम एकवचन तालिका नामों के लिए जाता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्लॉज या वैकल्पिक विकल्प में उपनाम का उपयोग करना?

  2. सी # नेट कोड से एक एसक्यूएल संग्रहीत प्रक्रिया में एक शून्य चर कैसे पास करें?

  3. पेश है SQL सर्वर में कॉमन टेबल एक्सप्रेशन

  4. SQL सर्वर में चेंज डेटा कैप्चर (सीडीसी) टेबल्स से हिस्ट्री या ऑडिट व्यू कैसे बनाएं - SQL सर्वर ट्यूटोरियल

  5. SQL सर्वर क्वेरी में डेटाटाइम को int में कनवर्ट करता है