2016-01-24 6 views
5

मैंने कॉलम S_ROLL NUMBER(3) NOT NULL के साथ एक तालिका बनाई है अब मैं इस कॉलम को पहचान कॉलम के रूप में बनाना चाहता हूं। मैं इस आदेशसंशोधित कॉलम एक पहचान कॉलम नहीं है

alter table students 
modify 
(
S_ROLL NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY 
); 

तब मैं इस त्रुटि हो रही है इस्तेमाल किया।

S_ROLL NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY 
* 
ERROR at line 4: 
ORA-30673: column to be modified is not an identity column 
+0

http://stackoverflow.com/questions/1049210/adding-an-identity-to-an-existing-column उम्मीद है कि यह आप की मदद करनी चाहिए। –

+0

@NitinGarg यह प्रश्न ओरेकल के बारे में है, लेकिन आपके द्वारा लिंक किया गया प्रश्न एमएस एसक्यूएल सर्वर के बारे में है, इसलिए मुझे लगता है कि यह ओपी को उनकी समस्या को ठीक करने में मदद नहीं करेगा। –

उत्तर

11

आपको यह त्रुटि केवल इसलिए मिल रही है क्योंकि मौजूदा कॉलम को संशोधित करने के रूप में IDENTITY कॉलम अभी समर्थित नहीं है।

+0

क्या कारण हो सकता है? और अब समाधान क्या है? – UnKnown

+0

समाधान एक नया कॉलम जोड़ना है और फिर मौजूदा को छोड़ना है (ओबीवी सुनिश्चित करना कि आप डेटा का भी ख्याल रखते हैं)। मैं इसके लिए एक संभावित कारण नहीं सोच सकता - इस सुविधा को जारी करते समय कुछ प्रकार के कार्यान्वयन के निर्णय लिया जाना चाहिए। पहचान के लिए मौजूदा न्यूल नंबर कॉलम को संशोधित करना मतलब होगा कि ओरेकल को कॉलम में उच्चतम संख्या की गणना करने की आवश्यकता है और फिर वहां से ऑटो वृद्धि शुरू करें। इष्टतम तरीके से इसे लागू करने में शायद कुछ प्रकार की कठिनाई है? लेकिन केवल शामिल लोग वास्तविक कारण का जवाब दे सकते हैं :) – Incognito

+0

मैं मौजूदा तालिका के डेटा को नए में कैसे कॉपी कर सकता हूं? मुझे लगता है कि सिर्फ एक कॉलम मूल्य की प्रतिलिपि असंभव हो सकती है। फिर तालिका के डेटा को नए में कैसे कॉपी करें? – UnKnown

0

कॉलम की पहचान करने के लिए मौजूदा कॉलम को संशोधित करने के रूप में समर्थित नहीं है। तो आप नया कॉलम जोड़ने के लिए नीचे क्वेरी का उपयोग कर सकते हैं।

ALTER TABLE students ADD (S_ROLL_NEW NUMBER(3) GENERATED ALWAYS AS IDENTITY); 
+0

क्या आप इसे समझा सकते हैं? क्यों संख्या_न्यू? – UnKnown

+0

मेरी गलती क्षमा करें, वैकल्पिक तालिका के छात्र जोड़ें (S_ROLL_NEW NUMBER (3) हमेशा पहचान के रूप में उत्पन्न); –

+0

आपका मतलब है कि मुझे नए कॉलम की आवश्यकता है? तो मैं डेटा की प्रतिलिपि कैसे बना सकता हूं? – UnKnown

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