एक IDENTITY
बाधा मौजूदा स्तंभ को नहीं जोड़ा जा सकता है, तो आप कैसे जोड़ने के इस अपने प्रारंभिक सोचा की जरूरत है। वहाँ दो विकल्प हैं:
- पहचान के साथ एक प्राथमिक कुंजी सहित एक नया टेबल बना सकते हैं और मौजूदा तालिका ड्रॉप
- पहचान के साथ एक नया प्राथमिक कुंजी स्तंभ बनाएं और मौजूदा 'P_ID' कॉलम ड्रॉप
एक तीसरा तरीका है, जो ALTER TABLE...SWITCH
कथन के माध्यम से बहुत बड़ी तालिकाओं के लिए एक बेहतर तरीका है। प्रत्येक के उदाहरण के लिए Adding an IDENTITY
to an existing column देखें। इस सवाल का जवाब में, यदि तालिका बहुत बड़ी नहीं है, मैं चलाने का सुझाव देंगे निम्नलिखित:
-- Check that the table/column exist and no primary key is already on the table.
IF COL_LENGTH('PERSONS','P_ID') IS NOT NULL
AND NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE CONSTRAINT_TYPE = 'PRIMARY KEY' AND TABLE_NAME = 'PERSONS')
-- Add table schema to the WHERE clause above e.g. AND TABLE_SCHEMA ='dbo'
BEGIN
ALTER TABLE PERSONS
ADD P_ID_new int IDENTITY(1, 1)
GO
ALTER TABLE PERSONS
DROP COLUMN P_ID
GO
EXEC sp_rename 'PERSONS.P_ID_new', 'P_ID', 'Column'
GO
ALTER TABLE PERSONS
ADD CONSTRAINT PK_P_ID PRIMARY KEY CLUSTERED (P_ID)
GO
END
नोट्स: स्पष्ट CONSTRAINT
कीवर्ड प्राथमिक कुंजी बाधा का उपयोग करके बजाय एक विशेष नाम दिया जाता है एक नाम स्वत: असाइन करने के लिए SQL सर्वर के आधार पर।
केवल CLUSTERED
PRIMARY KEY
पर शामिल करता है, तो एक विशेष P_ID के लिए खोजों की संतुलन और कुछ अन्य सूचकांक के आधार पर तालिका क्लस्टरिंग के लाभ outweighs लेखन की राशि। Create SQL IDENTITY
as PRIMARY KEY
देखें।
आपको एक उत्तर को स्वीकृत के रूप में चिह्नित करना चाहिए। –