Wenn Werte in Tabellenspalten mit INSERT, MERGE oder UPDATE eingetragen bzw. geändert werden, gelten folgende Regeln:
Atomare Werte und multiple Werte mit Dimension 1 können in atomare Spalten und multiple Spalten (bzw. Teilbereiche) mit Dimension 1 eingetragen werden.
Multiple Werte mit einer Dimension größer als 1 können in multiple Spalten (bzw. Teilbereiche) mit gleicher Dimension eingetragen werden.
Abhängig vom Datentyp gelten zusätzlich datentypspezifische Regeln. Diese sind im Folgenden zusammengestellt.
Zeichenketten
Sie können einen alphanumerischen Wert in eine Spalte mit alphanumerischem Datentyp oder einen National-Wert in eine Spalte mit National-Datentyp eintragen. Dabei gilt:
Ist der Zieldatentyp CHAR oder NCHAR und die Länge des Werts kleiner als die Länge des Zieldatentyps, wird der Wert am Ende mit Leerzeichen ergänzt.
Ist der Zieldatentyp CHAR oder NCHAR und die Länge des Werts größer als die Länge des Zieldatentyps, wird der Wert am Ende auf die Länge des Zieldatentyps gekürzt. Werden Zeichen entfernt, die keine Leerzeichen sind, wird der Wert nicht eingetragen, sondern eine Fehlermeldung erzeugt.
Ist der Zieldatentyp VARCHAR oder NVARCHAR und die Länge des Werts größer als die maximale Länge des Zieldatentyps, wird der Wert am Ende auf die maximale Länge des Zieldatentyps gekürzt. Werden Zeichen entfernt, die keine Leerzeichen sind, wird der Wert nicht eingetragen, sondern eine Fehlermeldung erzeugt.
Numerische Werte
Sie können einen numerischen Wert in eine Spalte mit numerischem Datentyp eintragen. Stimmen die numerischen Datentypen nicht überein, wird der Wert in den Datentyp der Spalte konvertiert. Dabei gilt:
Ist die Nachkommastellenzahl des Werts für den Datentyp der Spalte zu groß, wird der Wert gerundet.
Ist der Betrag des Werts für den Datentyp der Spalte zu groß, wird der Wert nicht eingetragen, sondern eine Fehlermeldung erzeugt.
Zeitwerte
Sie können einen Zeitwert nur in eine Spalte mit gleichem Datentyp eintragen:
ein Datum in eine DATE-Spalte
eine Uhrzeit in eine TIME-Spalte
einen Zeitstempel in eine TIMESTAMP-Spalte