मैंने परीक्षण किया कि जियोग्री क्या कहता है और यदि आप तालिका में पंक्तियों के बाद पहचान विशिष्टता (कम से कम 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