Bạn cần chỉ định NOT NULL
rõ ràng trong ALTER TABLE ... ALTER COLUMN
nếu không, nó mặc định cho phép NULL
. Điều này không được phép trong cột PK.
Những điều sau đây hoạt động tốt.
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
khi NOT NULL
bị bỏ qua, nó gây ra lỗi sau
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.
Một số điều cần xem xét trong cách tiếp cận có lập trình của bạn là bạn sẽ cần bỏ bất kỳ khóa ngoại nào tham chiếu đến ReferenceID
tạm thời và cũng đảm bảo rằng bạn không bao gồm NOT NULL
cho (Không PK) ReferenceID
các cột hiện đang là vô hiệu.