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

केवल एक पंक्ति सम्मिलित करना यदि वह पहले से मौजूद नहीं है

"JFDI" पैटर्न के बारे में क्या?

BEGIN TRY
   INSERT etc
END TRY
BEGIN CATCH
    IF ERROR_NUMBER() <> 2627
      RAISERROR etc
END CATCH

गंभीरता से, यह बिना ताले के सबसे तेज़ और सबसे समवर्ती है, विशेष रूप से उच्च मात्रा में। क्या होगा यदि UPDLOCK को बढ़ाया जाए और पूरी तालिका लॉक हो जाए?

पाठ 4 पढ़ें:

<ब्लॉकक्वॉट>

पाठ 4: इंडेक्स को ट्यून करने से पहले अप्सर्ट प्रो को विकसित करते समय, मैंने सबसे पहले इस बात पर भरोसा किया कि If Exists(Select…) लाइन किसी भी आइटम के लिए आग लगा देगी और डुप्लिकेट को प्रतिबंधित कर देगी। नाडा। थोड़े समय में हजारों डुप्लीकेट थे क्योंकि एक ही आइटम एक ही मिलीसेकंड पर अप्सर्ट को हिट करेगा और दोनों लेनदेन एक मौजूद नहीं देखेंगे और सम्मिलित करेंगे। बहुत परीक्षण के बाद समाधान अद्वितीय अनुक्रमणिका का उपयोग करना, त्रुटि को पकड़ना, और लेन-देन को पंक्ति को देखने और एक डालने के बजाय एक अद्यतन करने की अनुमति देने के लिए पुन:प्रयास करना था।



  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

  2. आप एक संग्रहित प्रो में वापस आने वाले डेटासेट की टेबल्स का नाम कैसे दे सकते हैं?

  3. क्या सीटीई का उपयोग करके कॉलम मानों को एक स्ट्रिंग में जोड़ना संभव है?

  4. एडीओ पैरामीटरयुक्त क्वेरी के साथ चर @myvariable त्रुटि घोषित करनी चाहिए

  5. SQL सर्वर में डेटाबेस पर परिवर्तन डेटा कैप्चर (CDC) को कैसे सक्षम करें - SQL सर्वर ट्यूटोरियल