Anda perlu menentukan NOT NULL secara eksplisit dalam ALTER TABLE ... ALTER COLUMN jika tidak, defaultnya adalah mengizinkan NULL . Ini tidak diizinkan di kolom PK.
Berikut ini berfungsi dengan baik.
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
ketika NOT NULL dihilangkan itu memberikan kesalahan berikut
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.
Beberapa hal yang perlu dipertimbangkan dalam pendekatan terprogram adalah Anda akan perlu membuang kunci asing apa pun yang merujuk pada ReferenceID kolom sementara dan juga pastikan Anda tidak menyertakan NOT NULL untuk (Non PK) ReferenceID kolom yang saat ini adalah dapat dibatalkan.