Sie müssen NOT NULL
angeben explizit in einem ALTER TABLE ... ALTER COLUMN
andernfalls erlaubt es standardmäßig NULL
. Dies ist in einer PK-Spalte nicht zulässig.
Folgendes funktioniert einwandfrei.
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
wenn NOT NULL
weggelassen wird, gibt es den folgenden Fehler
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.
Ein paar Dinge, die Sie bei Ihrem programmatischen Ansatz berücksichtigen sollten, sind, dass Sie würden müssen alle Fremdschlüssel löschen, die auf die ReferenceID
verweisen Spalten vorübergehend und stellen Sie außerdem sicher, dass Sie NOT NULL
nicht einschließen für (Nicht-PK) ReferenceID
Spalten, die derzeit sind nullable.