Du skal angive NOT NULL
eksplicit i en ALTER TABLE ... ALTER COLUMN
ellers tillader den som standard NULL
. Dette er ikke tilladt i en PK kolonne.
Følgende fungerer fint.
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
når NOT NULL
er udeladt giver det følgende fejl
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.
Et par ting at overveje i din programmatiske tilgang er, at du ville nødt til at droppe eventuelle fremmednøgler, der refererer til ReferenceID
kolonner midlertidigt, og sørg også for, at du ikke inkluderer NOT NULL
for (ikke PK) ReferenceID
kolonner, der i øjeblikket er nullable.