आपको निर्दिष्ट करने की आवश्यकता है NOT NULL
स्पष्ट रूप से एक ALTER TABLE ... ALTER COLUMN
अन्यथा यह डिफ़ॉल्ट रूप से NULL
. की अनुमति देता है . पीके कॉलम में इसकी अनुमति नहीं है।
निम्नलिखित ठीक काम करता है।
CREATE TABLE p
(
ReferenceID VARCHAR(6) NOT NULL PRIMARY KEY
)
INSERT INTO p VALUES ('AAAAAA')
ALTER TABLE p ALTER COLUMN ReferenceID VARCHAR(8) NOT NULL
जब NOT NULL
छोड़ा गया है यह निम्न त्रुटि देता है
Msg 5074, Level 16, State 1, Line 1
The object 'PK__p__E1A99A792180FB33' is dependent on column 'ReferenceID'.
Msg 4922, Level 16, State 9, Line 1
ALTER TABLE ALTER COLUMN ReferenceID failed because one or more objects access this column.
आपके प्रोग्रामेटिक दृष्टिकोण में विचार करने के लिए कुछ चीजें यह हैं कि आप करेंगे ReferenceID
. को संदर्भित करने वाली किसी भी विदेशी कुंजी को छोड़ने की आवश्यकता है कॉलम अस्थायी रूप से और यह भी सुनिश्चित करें कि आपने NOT NULL
. शामिल नहीं किया है के लिए (गैर PK) ReferenceID
कॉलम जो वर्तमान में हैं अशक्त।