जैसा कि अन्य ने पहले ही सही बताया है - एक आईएनटी में कभी भी अग्रणी शून्य नहीं होते हैं - यह केवल मूल्य रखता है, बस इतना ही (और यह उस तरह से अच्छा है)।
यदि आपको कुछ अतिरिक्त स्वरूपण की आवश्यकता है, तो आप हमेशा अपनी तालिका में एक परिकलित स्तंभ जोड़ सकते हैं, जैसे:
ALTER TABLE dbo.Identitytest
ADD DisplayNumber AS RIGHT('000' + CAST(number AS VARCHAR(3)) , 3) PERSISTED
इस तरह, आपकी INT पहचान का उपयोग INT के रूप में किया जाएगा और इसमें हमेशा संख्यात्मक मान होगा, जबकि DisplayNumber
इसमें 001, 002, ... 014, 015, .....
. शामिल हैं और इसी तरह - स्वचालित रूप से, हमेशा अप टू डेट।
चूंकि यह एक स्थायी क्षेत्र है, यह अब आपकी तालिका का हिस्सा है, और आप इस पर क्वेरी कर सकते हैं, और यहां तक कि प्रश्नों को तेज़ करने के लिए इस पर एक इंडेक्स भी डाल सकते हैं:
SELECT value FROM dbo.IdentityTest WHERE DisplayNumber = '024'
और निश्चित रूप से, आप अपने गणना किए गए कॉलम की परिभाषा में लगभग किसी भी स्वरूपण का उपयोग कर सकते हैं, ताकि आप एक उपसर्ग या कुछ भी जोड़ सकें:
ALTER TABLE dbo.Identitytest
ADD DisplayNumber
AS 'ABC-' + RIGHT('000' + CAST(number AS VARCHAR(3)) , 3) PERSISTED
तो इस मामले में, आपका DisplayNumber
होगा ABC-001, ABC-002, ...
और इसी तरह।
आप दोनों दुनिया में सर्वश्रेष्ठ प्राप्त करते हैं - आप अपनी INT पहचान रखते हैं जो संख्यात्मक है और स्वचालित रूप से SQL सर्वर द्वारा बढ़ाई जाती है, और आप किसी भी तरह से एक प्रदर्शन प्रारूप को परिभाषित कर सकते हैं और इसे किसी भी समय उपलब्ध कर सकते हैं।