आप नहीं IDENTITY
जोड़ें मौजूदा कॉलम के लिए। यह बस नहीं किया जा सकता।
आपको एक नया . बनाना होगा प्रकार का कॉलम INT IDENTITY
और फिर उस पुराने कॉलम को छोड़ दें जिसकी आपको अब और आवश्यकता नहीं है (और संभवत:नए कॉलम को पुराने नाम में बदल दें - यदि इसकी आवश्यकता है)
साथ ही:मैं नहीं इसे विज़ुअल डिज़ाइनर में करें - यह नई संरचना के साथ तालिका को फिर से बनाने का प्रयास करेगा, सभी डेटा पर कॉपी करेगा (सभी 10 लाख पंक्तियाँ), और फिर पुरानी तालिका को छोड़ दें।
यह सीधे टी-एसक्यूएल स्टेटमेंट का उपयोग करने के लिए बहुत अधिक कुशल है - यह एक "इन-प्लेस" अपडेट करेगा, गैर-विनाशकारी (कोई डेटा खो नहीं गया), और यह नहीं इस प्रक्रिया में लगभग 10 लाख पंक्तियों को कॉपी करने की आवश्यकता है...
ALTER TABLE dbo.YourTable
ADD NewID INT IDENTITY(1,1) NOT NULL
जब आप INT IDENTITY
. प्रकार का एक नया कॉलम जोड़ते हैं आपकी तालिका में, तो यह स्वचालित रूप से लगातार संख्याओं से भर जाएगा। आप इसे होने से नहीं रोक सकते, और आप बाद में मानों को अपडेट भी नहीं कर सकते।
उन विकल्पों में से कोई भी वास्तव में बहुत उपयोगी नहीं है, अंत में - आप अलग-अलग आईडी मानों के साथ समाप्त हो सकते हैं .... यह अधिकार करने के लिए, आपको यह करना होगा:
- उचित संरचना और
IDENTITY
के साथ समय से पहले नई तालिका बनाएं पहले से ही मौजूद है - फिर
SET IDENTITY_INSERT (yourtable) ON
उस तालिका पर पहचान कॉलम में मान डालने की अनुमति देने के लिए - इस डेटा को मूल स्रोत से कॉपी करें
- पहचान डालने को फिर से बंद करें:
SET IDENTITY_INSERT (yourtable) OFF
केवल इस दृष्टिकोण से आप अपनी नई तालिका में एक पहचान कॉलम में समान आईडी प्राप्त करने में सक्षम होंगे।