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

प्राथमिक कुंजी रीसेट करें (पहचान के रूप में int)

बिगिंट के लिए अधिकतम मान 9,223,372,036,854,775,807 है। . यदि आप एक दिन में 8 अंक प्राप्त कर लेते हैं तो आपको अधिकतम तक पहुंचने के लिए अभी भी 10 दिनों की आवश्यकता होगी। यह 25 मिलियन वर्ष की तरह है।

मान लें कि आप अभी भी कॉलम को रीसेट करना चाहते हैं, तो मेरे पास पहला सवाल है:क्या पंक्तियों का क्रम महत्वपूर्ण है? मतलब क्या आप इस तथ्य पर भरोसा करते हैं कि पंक्ति 1000, कालानुक्रमिक या अन्यथा पूर्ण क्रम के लिए 1100 से पहले आती है? यदि नहीं, तो यह आसान है:कॉलम हटाएं और इसे फिर से जोड़ें। अरे प्रेस्टो, नए मूल्य।

यदि आपको आदेश बनाए रखने की आवश्यकता है तो आपको इसे थोड़ा और सावधानी से करने की आवश्यकता होगी:

  1. टेबल लॉक करें;
  2. प्रकार बदलें ताकि यह अब स्वतः वृद्धि न हो;
  3. नया कॉलम बनाएं। आप इसे अभी के लिए कोई अनुक्रमणिका नहीं बना सकते हैं क्योंकि अनुक्रमणिका को अद्यतन करने से सम्मिलन धीमा हो जाएगा;
  4. सेकेंड में मानों को किसी प्रकार के लूप के साथ पॉप्युलेट करें जो एक काउंटर को बढ़ाते हुए (जैसे SQL सर्वर राउनम ट्रिक) इंसर्ट को मूल क्रम से मिलान करने का आदेश देता है;
  5. पुराने कॉलम को नए कॉलम से बदलें;
  6. स्वतः-वृद्धि और प्राथमिक कुंजी स्थिति रीसेट करें।


  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. पंक्तियों को हटाने के बाद पहचान मूल्य का पुन:उपयोग करें

  3. स्ट्रिंग के लिए कास्टिंग टाइप किए बिना एक्सएमएल को संयोजित करें

  4. SQL सर्वर क्वेरी में समूह का उपयोग कैसे करें?

  5. SQL सर्वर में Msg 8116 "तर्क डेटा प्रकार दिनांक सबस्ट्रिंग फ़ंक्शन के तर्क 1 के लिए अमान्य है" को ठीक करें