U moet NOT NULL
opgeven expliciet in een ALTER TABLE ... ALTER COLUMN
anders staat het standaard NULL
. toe . Dit is niet toegestaan in een PK-kolom.
Het volgende werkt prima.
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
wanneer de NOT NULL
wordt weggelaten, geeft het de volgende foutmelding
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.
Een aantal dingen waarmee u rekening moet houden bij uw programmatische aanpak, is dat u zou moet eventuele externe sleutels die verwijzen naar de ReferenceID
. verwijderen kolommen tijdelijk en zorg er ook voor dat u de NOT NULL
. niet opneemt voor (niet PK) ReferenceID
kolommen die momenteel zijn nullable.