Freigeben über


Ändern von Spalteneigenschaften

Jede Spalte in einer Tabelle verfügt über eine Reihe von Eigenschaften, wie z. B. Name, Datentyp, NULL-Zulässigkeit und Datenlänge. Die gesamte Menge der Eigenschaften für eine Spalte bildet die Definition der Spalte in einer Tabelle.

Datentyp der Spalte

Der Datentyp einer vorhandenen Spalte kann geändert werden, vorausgesetzt, die in der Spalte enthaltenen Daten können implizit in den neuen Datentyp konvertiert werden. Weitere Informationen finden Sie unter ALTER TABLE (Transact-SQL).

Länge der Daten in einer Spalte

Wenn Sie einen Datentyp auswählen, wird die Länge automatisch definiert. Sie können die Längeneigenschaft nur für eine Spalte erhöhen oder verringern, die den Datentyp binary, char, nchar, varbinary, varchar oder nvarchar aufweist. Für Spalten mit anderen Datentypen wird die Länge aus dem Datentyp abgeleitet und kann nicht geändert werden. Wenn die neu angegebene Länge geringer ist als die ursprüngliche Spaltenlänge, werden alle Werte in der Spalte, die die neue Länge überschreiten, ohne Warnung abgeschnitten. Allerdings ist es nicht möglich, die Länge einer durch eine PRIMARY KEY- oder FOREIGN KEY-Einschränkung definierten Spalte zu ändern.

Spaltengenauigkeit

Die Genauigkeit einer nummerischen Spalte gibt die maximale Anzahl an Ziffern an, die vom ausgewählten Datentyp verwendet wird. Die Genauigkeit einer nicht nummerischen Spalte bezeichnet im Allgemeinen entweder die maximale Länge oder die definierte Länge einer Spalte.

Für alle Datentypen bis auf decimal und numeric wird die Genauigkeit automatisch definiert. Sie können die Spaltengenauigkeit für die Datentypen decimal und numeric ändern, wenn Sie die maximale Anzahl an Stellen für diese Spalten neu definieren möchten. Datenbankmodul lässt nicht zu, dass Sie die Genauigkeit einer Spalte ändern, die nicht einen der beiden zuvor aufgeführten Datentypen aufweist.

Dezimalstellen einer Spalte

Die Dezimalstellen einer Spalte des numeric- oder decimal-Datentyps entsprechen der maximalen Anzahl an Ziffern rechts vom Dezimalkomma. Wenn Sie einen Datentyp auswählen, werden die Dezimalstellen in der Spalte standardmäßig auf den Wert 0 festgelegt. Bei Spalten mit angenäherten Gleitkommazahlen sind die Dezimalstellen nicht definiert, da die Anzahl der Ziffern rechts vom Dezimalkomma variabel ist. Sie können die Dezimalstellen für eine numeric- oder decimal-Spalte ändern, wenn Sie die Anzahl an Stellen neu definieren möchten, die rechts vom Dezimalkomma erscheinen können.

NULL-Zulässigkeit einer Spalte

Eine Spalte kann so definiert werden, dass sie NULL-Werte entweder zulässt oder nicht zulässt. Standardmäßig lässt eine Spalte NULL-Werte zu. Wenn Sie die Definition einer vorhandenen Spalte dahingehend ändern möchten, dass NULL-Werte nicht mehr zulässig sind, ist dies nur möglich, wenn die Spalte derzeit keine NULL-Werte enthält und die Spalte zurzeit nicht in einen Index einbezogen ist. Wenn NULL-Werte in einer Spalte, die bereits NULL-Werte enthält, nicht mehr zulässig sein sollen, müssen Sie die folgenden Schritte ausführen:

  1. Fügen Sie eine neue Spalte mit einer DEFAULT-Definition hinzu, durch die anstelle von NULL ein gültiger Wert eingefügt wird.
  2. Kopieren Sie die Daten von der alten (vorhandenen) Spalte in die neue Spalte.
  3. Löschen Sie die alte Spalte.

Sie können die Definition einer vorhandenen Spalte, die keine NULL-Werte zulässt, dahingehend ändern, dass NULL-Werte zulässig sind. Dies gilt jedoch nur unter der Voraussetzung, dass für die Spalte keine PRIMARY KEY-Einschränkung definiert ist.

So legen Sie Spalteneigenschaften fest

ALTER TABLE (Transact-SQL)

Ändern von Spalten (Visual Database Tools)

So zeigen Sie Spalteneigenschaften an

COLUMNPROPERTY (Transact-SQL)

Tabellenspalteneigenschaften (SQL Server Management Studio)

So benennen Sie eine Spalte um

sp_rename (Transact-SQL)

Vorgehensweise: Umbenennen von Spalten (Visual Database Tools)

Siehe auch

Andere Ressourcen

Genauigkeit, Dezimalstellen und Länge (Transact-SQL)

Hilfe und Informationen

Informationsquellen für SQL Server 2005