2010-09-13 9 views
15

मैं SQL सर्वर 2008 एंटरप्राइज़ का उपयोग कर रहा हूं। मैं एक मौजूदा तालिका में एक पहचान कॉलम (अद्वितीय क्लस्टर सूचकांक और प्राथमिक कुंजी के रूप में) जोड़ना चाहता हूं। 1 पहचान कॉलम द्वारा इंटीजर आधारित ऑटो-बढ़ाना ठीक है। कोई समाधान?SQL सर्वर में किसी तालिका में कोई नया पहचान कॉलम कैसे जोड़ें?

बीटीडब्लू: मेरा सबसे भ्रम मौजूदा पंक्तियों के लिए है, स्वचालित रूप से नए पहचान कॉलम डेटा को कैसे भरें? पहले से

धन्यवाद, जॉर्ज

उत्तर

39

आप उपयोग कर सकते हैं -

alter table <mytable> add ident INT IDENTITY 

यह अपनी तालिका में अध्यक्ष कॉलम जोड़ने पर और से 1.

क्लस्टर जोड़ने के लिए 1 से शुरू और incrementing डेटा कहते हैं सूचकांक -

CREATE CLUSTERED INDEX <indexName> on <mytable>(ident) 
+0

धन्यवाद, प्रश्न का उत्तर दिया गया! – George2

+0

किसी पहचान कॉलम द्वारा क्लस्टरिंग तालिका के अंत में विवाद का हॉट-स्पॉट बना सकता है। मैं पहचान कॉलम के साथ क्लस्टर करने के लिए आपकी 'ज़रूरत' की समीक्षा करूंगा। – Rawheiser

+0

@ राहेइज़र: मैंने क्लस्टर इंडेक्स के लिए आम उम्मीदवारों के लिए आम तौर पर पहचान कॉलम ग्रहण किए। यदि आपको यह मामला नहीं मिला है, तो क्या आपके पास उस विषय पर कोई और जानकारी है जो आप मुझे इंगित कर सकते हैं? – mwolfe02

0

में न्यूनतम 1 दृष्टिकोण है डी, लेकिन यह सुनिश्चित नहीं है कि यह आपके अंत में संभव है या नहीं। लेकिन मैं आपको आश्वस्त करता हूं, यह एक बहुत ही प्रभावी दृष्टिकोण है। आप एक पहचान कॉलम वाली तालिका बना सकते हैं और उस तालिका में अपना पूरा डेटा सम्मिलित कर सकते हैं। और वहां से किसी भी डुप्लिकेट डेटा को संभालने पर बच्चे का खेल होता है।

Create a new table with identity, copy data to this new table then drop the existing table followed by renaming the temp table. 

Create a new column with identity & drop the existing column 

संदर्भ के लिए मैं पाया है 2 लेख:: वहाँ मौजूद डेटा के साथ एक मेज पर एक पहचान स्तंभ जोड़ने के दो तरीके हैं http://blog.sqlauthority.com/2009/05/03/sql-server-add-or-remove-identity-property-on-column/ http://cavemansblog.wordpress.com/2009/04/02/ एसक्यूएल-कैसे-टू-एड-ए-पहचान-कॉलम-टू-ए-टेबल-डेटा/

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