2013-08-07 7 views
8

मुझे अपने डेटाबेस में कुछ मजाकिया अनुभव हो रहा है। प्राथमिक कुंजी बढ़ जाती है जैसे:पहचान कॉलम वृद्धि कूद

1 
2 
3 
4 
5 
6 
7 
8 
1001 

मैं EntityFramework या कभी-कभी LINQ से SQL का उपयोग कर रहा हूं।

+0

के साथ अनुक्रम जनरेटर का उपयोग करें, क्या आपकी डालने कुछ बिंदु पर विफल हो जाती है? –

+1

यदि आप SQL Server 2012 का उपयोग कर रहे हैं तो यह एक बग है। –

+1

http://connect.microsoft.com/SQLServer/feedback/details/739013/alwayson-failover-results-in-reseed-of-identity –

उत्तर

4

ऐसा तब होता है जब SQL सर्वर 2012 अपने पूर्व-आवंटित अनुक्रम संख्या खो देता है।

आपको लगता है कि से छुटकारा पाने चाहते हैं, एक ही विकल्प traceflag उपयोग करने के लिए है:

DBCC TRACEON (272) 

एक अन्य विकल्प पहचान के बजाय एक दृश्य (कोई कैशिंग के साथ) का उपयोग करने के लिए है:

CREATE SEQUENCE MySeq AS int 
    START WITH 1 
    INCREMENT BY 1 
    NO CACHE; 

इसे देखें: http://www.big.info/2013/01/how-to-solve-sql-server-2012-identity.html

+0

आप सब का भला हो। थम्स अप – ojorma

1

यह सब बिल्कुल सामान्य है। माइक्रोसॉफ्ट ने SQL सर्वर 2012 में अनुक्रमों को जोड़ा, कुछ स्पष्टीकरण के लिए यहां a link देखें।

आप पुराने व्यवहार करना चाहते हैं, तो आप कर सकते हैं:

उपयोग ट्रेस ध्वज 272 - यह एक लॉग रिकॉर्ड प्रत्येक उत्पन्न पहचान मूल्य के लिए उत्पन्न होने का कारण होगा। इस ट्रेस ध्वज को चालू करके पहचान पीढ़ी का प्रदर्शन प्रभावित हो सकता है। कोई कैश सेटिंग (http://msdn.microsoft.com/en-us/library/ff878091.aspx)

संबंधित मुद्दे