2010-12-07 13 views
6

बस सोच रहा है कि 2147483647 रिकॉर्ड से अधिक होने के बाद वास्तव में क्या होता है?Int प्राथमिक कुंजी - int int से अधिक

+3

आप धुएं से बाहर निकलें –

+1

परीक्षण करना आसान होगा - 2147483646 पर बीजित पहचान कोड बनाएं और फिर दो रिकॉर्ड जोड़ें! :-) –

+0

प्रतीक्षा करें ........... –

उत्तर

12

इसे बाहर

CREATE TABLE #tester (
    testerid INT IDENTITY(1, 1) not null CONSTRAINT pk_tester 
    PRIMARY KEY CLUSTERED) 

DBCC checkident(#tester, reseed, 2147483647) 

INSERT #tester DEFAULT VALUES 
INSERT #tester DEFAULT VALUES 

कोशिश संदेश 8115, स्तर 16, राज्य 1, रेखा डेटा प्रकार int पहचान परिवर्तित 1
अंकगणित अतिप्रवाह त्रुटि।

त्वरित सुधार

+3

+1 मुझे –

+0

पढ़ने के बजाय निष्पादन पसंद है धन्यवाद आदमी, अच्छी चीजें! – 001

1

ज्यादातर लोग भूल जाते हैं int करने के लिए जो सकारात्मक पक्ष एक से बड़ा है एक नकारात्मक पक्ष नहीं है के लिए भी What To Do When Your Identity Column Maxes Out देखें। यदि आपको लगता है कि आप सकारात्मक int मानों को पार कर सकते हैं तो बस अपनी पहचान को श्रेणी -2,147,483,648 के नकारात्मक अंत में शुरू करें। या वास्तव में नए डीबीए के साथ खेलना 2,147,483,647 और चरण -1 से शुरू होता है।

1

यदि आपको लगता है कि यह संभव है तो एक बड़ी श्रेणी के साथ डेटाटाइप का उपयोग करें। उदाहरण के लिए NUMERIC या BIGINT।

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