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

पहचान कॉलम में डुप्लिकेट मान

मैंने परीक्षण किया कि जियोग्री क्या कहता है और यदि आप तालिका में पंक्तियों के बाद पहचान विशिष्टता (कम से कम 2008 पर, शायद अन्य संस्करण भी) सक्षम करते हैं, तो डीबी उच्चतम पूर्णांक मान पर नंबरिंग शुरू कर देगा। यदि आपके पास कॉलम मान के रूप में 100 के साथ एक पंक्ति है, तो पहचान सक्षम करें, अगला इंसर्ट 101 होगा। यहां तक ​​​​कि 1 के रूप में निर्दिष्ट पहचान बीज के साथ भी। वह नहीं था जिसकी मुझे उम्मीद थी, लेकिन यह हुआ।

SET IDENTITY INSERT के अलावा , एक शोध आदेश भी है। DBCC CHECKIDENT कमांड जो आपके पहचान मूल्यों को आपके द्वारा निर्दिष्ट किए गए पर वापस रीसेट कर देगा।

यह देखते हुए कि पहचान विशिष्टता को सक्षम करना वास्तव में कॉलम में उच्चतम पूर्णांक से शुरू होता है, शायद किसी ने SET IDENTITY_INSERT का उपयोग किया हो या एक DBCC CHECKIDENT किया था ।

जैसा कि एंडोमर कहते हैं, पुन:प्राप्त करने का सबसे तेज़ तरीका इस तरह के कॉलम को छोड़ना/फिर से बनाना है

ALTER TABLE tbl
DROP COLUMN ident_column
GO
alter TABLE tbl
ADD ident_column int IDENTITY

SET IDENTITY_INSERT दस्तावेज़:http://msdn.microsoft.com/ en-us/library/aa259221(SQL.80).aspx
DBCC CHECKIDENT डॉक्स:http://msdn.microsoft.com/ en-us/library/aa258817(SQL.80).aspx



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SSRS शीर्ष n प्रदर्शित करता है लेकिन SUM में सभी मान शामिल हैं

  2. SQL सर्वर में यादृच्छिक डेटा कैसे उत्पन्न करें

  3. R . में SQL सर्वर संग्रहीत कार्यविधि से लौटाए गए एकाधिक परिणाम सेट को कैसे पढ़ें?

  4. SQL सर्वर में, क्या मुझे पहचान कॉलम के लिए एक इंडेक्स बनाना चाहिए, या यह स्वचालित रूप से बनाया गया है?

  5. डेटाबेस में सभी स्तंभों की अल्पविराम से अलग की गई सूची (Tablename | Column_names...)