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

मेरे पहचान कॉलम के मानों में अंतराल क्यों हैं?

एक कॉलम पर पहचान संपत्ति निम्नलिखित की गारंटी नहीं देती है :

मूल्य की विशिष्टता - प्राथमिक कुंजी या अद्वितीय बाधा या अद्वितीय अनुक्रमणिका का उपयोग करके विशिष्टता को लागू किया जाना चाहिए।

लेन-देन में लगातार मान - कई पंक्तियों को सम्मिलित करने वाले लेन-देन की पंक्तियों के लिए लगातार मान प्राप्त करने की गारंटी नहीं है क्योंकि अन्य समवर्ती सम्मिलन तालिका पर हो सकते हैं। यदि मान लगातार होने चाहिए तो लेन-देन को टेबल पर एक विशेष लॉक का उपयोग करना चाहिए या सीरियल आइसोलेशन स्तर का उपयोग करना चाहिए।

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

मूल्यों का पुन:उपयोग - विशिष्ट बीज/वृद्धि के साथ दी गई पहचान संपत्ति के लिए, इंजन द्वारा पहचान मूल्यों का पुन:उपयोग नहीं किया जाता है। यदि कोई विशेष इंसर्ट स्टेटमेंट विफल हो जाता है या यदि इंसर्ट स्टेटमेंट को वापस ले लिया जाता है तो उपभोग किए गए पहचान मान खो जाते हैं और फिर से उत्पन्न नहीं होंगे। इसके परिणामस्वरूप अंतराल हो सकता है जब बाद के पहचान मान उत्पन्न होते हैं।

इसके अलावा,

यदि बार-बार हटाए जाने वाली तालिका के लिए एक पहचान स्तंभ मौजूद है, तो पहचान मानों के बीच अंतराल हो सकता है। अगर यह चिंता का विषय है, तो पहचान संपत्ति का उपयोग न करें। हालांकि, यह सुनिश्चित करने के लिए कि कोई अंतराल नहीं बनाया गया है या मौजूदा अंतराल को भरने के लिए , SET IDENTITY_INSERT ON के साथ किसी एक को स्पष्ट रूप से दर्ज करने से पहले मौजूदा पहचान मानों का मूल्यांकन करें ।

इसके अलावा, पहचान कॉलम के गुणों की जाँच करें और पहचान वृद्धि मूल्य की जाँच करें। यह 1 होना चाहिए।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. IS NULL या LIKE> ऑपरेटर का उपयोग करने के अलावा, टेक्स्ट, ntext और छवि डेटा> प्रकारों की तुलना या सॉर्ट नहीं किया जा सकता है

  2. SQL सर्वर (T-SQL) में 'समय' को 'डेटाटाइम' में बदलने के उदाहरण

  3. तालिका को छोटा नहीं किया जा सकता क्योंकि इसे एक विदेशी कुंजी बाधा द्वारा संदर्भित किया जा रहा है - SQL सर्वर / TSQL ट्यूटोरियल भाग 70

  4. SQL सर्वर चुपचाप संग्रहीत कार्यविधियों में varchar की काट-छाँट करता है

  5. SQL सर्वर में "सर्वर डेटा एक्सेस के लिए कॉन्फ़िगर नहीं है" को कैसे ठीक करें