Mittwoch, 6. Juli 2011

Hinzufügen einer NOT-NULL-Spalte zu einer bestehenden, gefüllten Tabelle

Was tun, wenn eine neue Spalte zu einer Tabelle hinzugefügt werden soll, diese neue Spalte keine NULL-Werte enthalten darf, doch die Tabelle bereits Datensätze enthält? Eine schlichte "ALTER TABLE"-Anweisung lässt der MS SQL Server nicht zu.

Die Lösung ist schlicht, aber wie mir im I-Net auffiel nicht für jeden gleich offensichtlich.

Bei mir eine aktuelle Aufgabe: Gegeben ist eine Tabelle "Hersteller", welche schon Datensätze enthält. Hinzugefügt werden soll eine Spalte mit dem Namen "AutoAnlegen" vom Datentyp "bit", welche keine NULL-Werte enthalten darf und als Standard auf "false" steht. Die Umsetzung erfolgt in drei Schritten:

  1.  ALTER TABLE Hersteller
  2.     ADD AutoAnlegen bit DEFAULT 0
  1.  Update Hersteller SET AutoAnlegen = 0
  1.  Alter Table Hersteller
  2.     Alter Column AutoAnlegen bit Not NULL

Keine Kommentare: