में प्राथमिक कुंजी कॉलम जोड़ें मैं आरडीबीएमएस के छात्र हूं।एसक्यूएल तालिका
मेरे पास बहुत बुनियादी सवाल है कि मेरे पास SQL सर्वर में एक मौजूदा तालिका है। तालिका बदलने के लिए स्क्रिप्ट क्या होगी।
- ड्रॉप कॉलम 'पंक्ति आईडी' मौजूद है।
- मौजूद होने पर ड्रॉप तनाव।
- तालिका में एक नया कॉलम 'RowId' जोड़ें।
- इस कॉलम को प्राथमिक कुंजी के रूप में बनाएं।
- Autoincrement प्रकार int।
बेशक-- drop PK constraint if it exists IF EXISTS (SELECT * FROM sys.key_constraints WHERE type = 'PK' AND parent_object_id = OBJECT_ID('dbo.YourTable') AND Name = 'PK_YourTable') ALTER TABLE dbo.YourTable DROP CONSTRAINT PK_YourTable GO -- drop column if it already exists IF EXISTS (SELECT * FROM sys.columns WHERE Name = 'RowId' AND object_id = OBJECT_ID('dbo.YourTable')) ALTER TABLE dbo.YourTable DROP COLUMN RowId GO -- add new "RowId" column, make it IDENTITY (= auto-incrementing) ALTER TABLE dbo.YourTable ADD RowId INT IDENTITY(1,1) GO -- add new primary key constraint on new column ALTER TABLE dbo.YourTable ADD CONSTRAINT PK_YourTable PRIMARY KEY CLUSTERED (RowId) GO
, इस स्क्रिप्ट अभी भी विफल हो सकता है, अगर अन्य तालिकाओं पूर्व पर विदेशी कुंजी की कमी का उपयोग कर इस
dbo.YourTable
संदर्भित कर रहे हैं:
कॉलम छोड़ना और प्राथमिक कुंजी बाधा को हटाने से अलग-अलग चीजें हैं। आपकी पहली पंक्ति स्पष्ट नहीं है। क्या आप इस पर अपना प्रयास भी पोस्ट कर सकते हैं और समझा सकते हैं कि आप कहां फंस गए हैं? – Oded
आप वास्तव में क्या चाहते हैं? –
क्या आप पूरे अनुक्रम पूर्ण होने तक "पुराना" RowId को संरक्षित नहीं करना चाहते हैं? क्या यह "पुराना" RowId पहचान भी होने की उम्मीद है? एक ही नाम के साथ कॉलम को प्रतिस्थापित क्यों करें? – gbn