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

लेन-देन रोलबैक के साथ भी SQL पहचान (ऑटोनंबर) को बढ़ाया जाता है

यदि आप इसके बारे में सोचते हैं, तो ऑटो-इन्क्रीमेंट नंबर नहीं होना चाहिए लेन-देन हो। यदि अन्य लेनदेन को यह देखने के लिए इंतजार करना पड़ता है कि क्या ऑटो-नंबर का उपयोग किया जा रहा है या "रोल बैक" किया जा रहा है, तो उन्हें ऑटो-नंबर का उपयोग करके मौजूदा लेनदेन द्वारा अवरुद्ध कर दिया जाएगा। उदाहरण के लिए, आईडी कॉलम के लिए ऑटो-नंबर फ़ील्ड का उपयोग करके तालिका ए के साथ नीचे दिए गए मेरे छद्म कोड पर विचार करें:

User 1
------------
begin transaction
insert into A ...
insert into B ...
update C ...
insert into D ...
commit


User 2
-----------
begin transaction
insert into A ...
insert into B ...
commit

यदि उपयोगकर्ता 2 का लेन-देन उपयोगकर्ता 1 के बाद एक मिलीसेकंड शुरू करता है, तो तालिका A में उनकी प्रविष्टि को उपयोगकर्ता 1 के पूरे लेन-देन के पूरा होने तक इंतजार करना होगा, यह देखने के लिए कि क्या A में पहली प्रविष्टि से ऑटो-नंबर का उपयोग किया गया था।

यह एक विशेषता है, बग नहीं। यदि आपको सख्त अनुक्रमिक होने की आवश्यकता है तो मैं ऑटो-नंबर उत्पन्न करने के लिए किसी अन्य योजना का उपयोग करने की अनुशंसा करता हूं।



  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. मैं SQL सर्वर में जॉइन के साथ एक अद्यतन विवरण कैसे कर सकता हूं?

  3. एसक्यूएल सर्वर जॉब्स को एक साथ चलाने से कैसे रोकें

  4. SQL सर्वर एजेंट सेवा के लिए क्रेडेंशियल अमान्य हैं

  5. SQL सर्वर 2017 चरण दर चरण स्थापना -2