Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर में कॉलम में पहचान कैसे जोड़ें?

आप नहीं 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

केवल इस दृष्टिकोण से आप अपनी नई तालिका में एक पहचान कॉलम में समान आईडी प्राप्त करने में सक्षम होंगे।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसक्यूएल सर्वर 2008 के बीच में नहीं होने पर डेटा कैसे सम्मिलित करें?

  2. SQL सर्वर सक्रिय सत्र और स्थिति

  3. डिवीजन ऑपरेटर का उपयोग करते समय एसक्यूएल सर्वर में गोल व्यवहार को न समझें

  4. जावा से तालिका-मूल्यवान पैरामीटर के साथ संग्रहीत कार्यविधि को कॉल करें

  5. SQL सर्वर में Concat समूह