2010-01-26 15 views
11

क्या पहचान कॉलम के लिए पहचान बीज को स्थायी रूप से बदलने का कोई तरीका है? डीबीसीसी अध्यक्ष का उपयोग करना सिर्फ अंतिम_वृत्त सेट करना प्रतीत होता है। यदि तालिका को छोटा कर दिया गया है तो सभी मान रीसेट हो जाते हैं।SQL सर्वर में स्थायी पहचान बीज (स्थायी रूप से!)

dbcc checkident ('__Test_SeedIdent', reseed, 1000) 

select name, seed_value, increment_value, last_value 
from sys.identity_columns 
where [object_id] = OBJECT_ID('__Test_SeedIdent'); 

रिटर्न

name  seed_value increment_value last_value 
------------------------------------------------- 
idIdent 1   1    1000 

मुझे उम्मीद थी कि जैसे

alter table dbo.__Test_SeedIdent alter column idIdent [int] identity(1000,1) NOT NULL 

कुछ वाक्य रचना मौजूद होगा।

क्या एक नया कॉलम बनाना, मूल्यों को स्थानांतरित करना, मूल कॉलम छोड़ना और नया नाम बदलना आवश्यक है?

+0

रनिंग प्रोफाइलर, मैं देखता हूं कि एमएस एक अस्थायी तालिका बनाता है, डेटा को प्रतिलिपि बनाता है, फिर मौजूदा तालिका को छोड़ देता है और अस्थायी तालिका का नाम बदलता है। शायद क्योंकि एक से अधिक पहचान कॉलम नहीं हो सकते हैं। – avenmore

उत्तर

15

पुस्तकें ऑनलाइन से:

"मूल बीज मूल्य बदल सकते हैं और किसी भी मौजूदा पंक्तियों reseed के लिए, आप पहचान स्तंभ ड्रॉप और इसे नए बीज मूल्य को निर्दिष्ट पुन: तालिका डेटा होते हैं, पहचान नंबर दिए गए हैं चाहिए। निर्दिष्ट बीज और वृद्धि मूल्यों के साथ मौजूदा पंक्तियों में जोड़ा गया है। जिस क्रम में पंक्तियों को अद्यतन किया जाता है, वह गारंटी नहीं है। "

3

एमएसएसक्यूएल आपको टीएसक्यूएल के माध्यम से किसी मौजूदा कॉलम पर पहचान को जोड़ने या बदलने की अनुमति नहीं देता है। आपको कॉलम ड्रॉप करना होगा और इसे फिर से जोड़ना होगा। कहने की जरूरत नहीं है कि यह एफके संबंधों के साथ नरक खेल सकता है। आप सीधे उद्यम प्रबंधक में कर सकते हैं। हालांकि अगर आपको बहुत सारे स्तंभों में ऐसा करना है तो यह मजेदार नहीं होगा।

यह एक नया स्तंभ बनाने के लिए, भर में मान ले जाते हैं, ड्रॉप मूल स्तंभ और नाम बदलने नई जरूरी है?

हाँ, और मत भूलना ठीक/सभी अनुक्रमित, विदेशी कुंजी रिश्ते, आदि उस स्तंभ

+0

एएनडी इसे एक बड़ी मेज पर करने का भी विचार नहीं करता है! – HLGEM

+0

मैं आमतौर पर एंटरप्राइज़ प्रबंधक में किसी भी उत्पादन तालिका को संपादित करने के खिलाफ अनुशंसा करता हूं। कभी-कभी वांछित कार्रवाई को पूरा करने के लिए यह आपकी तालिका को कॉपी, ड्रॉप और पेस्ट करेगा। –

0

से बंधी हुई अद्यतन करने के लिए "यह आवश्यक एक नया स्तंभ बनाने के लिए, ले जाने के है मूल्यों को पूरा करें, मूल कॉलम ड्रॉप करें और नया नाम बदलें? "

एंटरप्राइज़ प्रबंधक, जब आप एक मौजूदा टेबल में आईडी कॉलम जोड़ने के (या एक INT पी आईडी के लिए एक INT पी फ़ील्ड को परिवर्तित) में वास्तव में, यह दृश्य के पीछे से करता है।

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