Musíte zadat NOT NULL
explicitně v ALTER TABLE ... ALTER COLUMN
jinak je výchozí povoleno NULL
. Ve sloupci PK to není povoleno.
Následující funguje dobře.
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
když NOT NULL
Pokud je vynechán, zobrazí se následující chyba
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.
Ve svém programovém přístupu je třeba zvážit několik věcí, a to by potřebujete zahodit všechny cizí klíče odkazující na ReferenceID
sloupce dočasně a také se ujistěte, že jste nezahrnuli NOT NULL
pro (bez PK) ReferenceID
sloupců, které aktuálně jsou s možností null.