Menü

Datentypen

Zurück | Ebene zurück

In Microsoft® SQL Server™ hat jede Spalte, jede lokale Variable, jeder Ausdruck und jeder Parameter einen entsprechenden Datentyp. Es handelt sich dabei um ein Attribut, das für das jeweilige Objekt angibt, welchen Typ von Daten (ganze Zahl, Zeichenketten, Bilder usw.) es aufnehmen kann. SQL Server stellt eine Reihe von Systemdatentypen zur Verfügung, die alle Typen von Daten definieren, die mit SQL Server verwendet werden können. Die vom System bereitgestellten Datentypen sind im Folgenden aufgeführt:

Ganzzahlige Datentypen

bigint

Ganzzahlige Daten von -2^63 (-9223372036854775808) bis 2^63-1 (9223372036854775807). Die Speichergröße beträgt 8 Byte.

int

Ganzzahlige Daten von -2^31 (-2.147.483.648) bis 2^31 - 1 (2.147.483.647). Die Speichergröße beträgt 4 Byte. Das SQL-92-Synonym für int ist integer.

smallint

Ganzzahlige Daten von -2^15 (-32.768) bis 2^15 - 1 (32.767). Die Speichergröße beträgt 2 Byte.

tinyint

Ganzzahlige Daten von 0 bis 255. Die Speichergröße beträgt 1 Byte.

Hinweise

Der bigint-Datentyp wird unterstützt, wo ganzzahlige Werte unterstützt werden. Allerdings ist bigint für besondere Fälle bestimmt, in denen ganzzahlige Werte den durch den int-Datentyp unterstützten Bereich überschreiten. Der int-Datentyp ist weiterhin der primäre ganzzahlige Datentyp in SQL Server.

bigint passt zwischen smallmoney und int in der Rangfolge der Datentypen.

Funktionen geben nur bigint zurück, wenn der Parameterausdruck ein bigint-Datentyp ist. SQL Server nimmt nicht automatisch eine Höherstufung anderer ganzzahliger Datentypen (tinyint, smallint und int) zu bigint vor

Boolsche Datentypen

bit

Ganzzahliger Datentyp mit dem Wert 1, 0 oder NULL.

Hinweise

Spalten vom Typ bit können nicht indiziert werden.

Microsoft® SQL Server™ optimiert den Speicher, der für bit-Spalten verwendet wird. Sind 8 oder weniger bit-Spalten in einer Tabelle vorhanden, werden die Spalten als 1 Byte abgespeichert. Sind zwischen 9 und 16 bit-Spalten vorhanden, werden diese als 2 Byte gespeichert usw. 

Fliesskomma Datentypen

numeric

Numerische Datentypen mit fester Genauigkeit und fester Anzahl von Dezimalstellen.

numeric[(p[, s])]

Zahlen mit fester Genauigkeit und mit fester Anzahl von Dezimalstellen. Bei maximaler Genauigkeit befinden sich die gültigen Werte in einem Bereich von - 10^38 +1 bis 10^38 - 1. 

p (Precision = Genauigkeit)

Gibt an, wie viele Dezimalstellen maximal (vor und nach dem Dezimalzeichen) gespeichert werden können. Der Wert für die Genauigkeit muss in einem Bereich zwischen 1 und der maximalen Genauigkeit liegen. Die maximale Genauigkeit ist 38.

s (Scale = Dezimalstellen)

Gibt an, wie viele Dezimalstellen (Ziffern nach dem Dezimalzeichen) maximal gespeichert werden können. Der Dezimalstellenwert muss in einem Bereich zwischen 0 und p liegen. Der Standardwert ist 0; daher gilt: 0 <= s <= p. Die maximalen Speichergrößen variieren basierend auf der Genauigkeit.

Genauigkeit Speicherplatz in Bytes
1 - 9 5
10-19 9
20-28 13
29-38 17

Datums Datentypen

datetime

Datums- und Zeitdatentypen zum Darstellen von Datum und Tageszeit.

datetime

Datums- und Zeitdaten zwischen dem 1. Januar 1753 und dem 31. Dezember 9999 mit einer Genauigkeit von drei Hundertstel einer Sekunde (entspricht 3,33 Millisekunden oder 0,00333 Sekunden). Die Werte werden in Abschnitten von 0,000, 0,003 oder 0,007 Sekunden gerundet, wie in der Tabelle dargestellt.

Beispiel Gerundetes Beispiel
01/01/98 23:59:59.999 1998-01-02 00:00:00.000
01/01/98 23:59:59.995,
01/01/98 23:59:59.996,
01/01/98 23:59:59.997 oder
01/01/98 23:59:59.998
1998-01-01 23:59:59.997
01/01/98 23:59:59.992,
01/01/98 23:59:59.993,
01/01/98 23:59:59.994
1998-01-01 23:59:59.993
01/01/98 23:59:59.990 oder
01/01/98 23:59:59.991
1998-01-01 23:59:59.990

Microsoft® SQL Server™ weist alle Werte zurück, die nicht im Datumsbereich zwischen 1753 und 9999 liegen.

smalldatetime

Datums- und Zeitangaben zwischen dem 1. Januar 1900 und dem 6. Juni 2079 mit einer Genauigkeit von einer Minute. smalldatetime-Werte mit kleiner gleich 29,998 Sekunden werden zur nächsten Minute abgerundet; Werte mit größer gleich 29,999 Sekunden werden zur nächsten Minute aufgerundet.

--liefert die Zeit als 12:35
SELECT CAST('2000-05-08 12:35:29.998' AS smalldatetime)
GO
--liefert die Zeit als 12:36
SELECT CAST('2000-05-08 12:35:29.999' AS smalldatetime)
GO

Hinweise

Werte des datetime-Datentyps werden von Microsoft SQL Server intern als zwei 4 Byte lange ganze Zahlen gespeichert. Die ersten 4 Byte enthalten die Anzahl der Tage vor oder nach dem Basisdatum, dem 1. Januar 1900. Das Basisdatum ist das Referenzdatum des Systems. Werte für datetime, die vor dem 1. Januar 1753 liegen, sind nicht zulässig. Die anderen 4 Byte speichern die Tageszeit, die als Anzahl der Millisekunden seit Mitternacht dargestellt wird.

Der smalldatetime-Datentyp speichert Datum und Tageszeit mit geringerer Genauigkeit als datetime. SQL Server speichert smalldatetime-Werte als zwei ganze Zahlen mit einer Länge von 2 Byte. Die ersten 2 Byte enthalten die Anzahl der Tage seit dem 1. Januar 1900. Die anderen 2 Byte speichern die Anzahl der Minuten seit Mitternacht. Die Datumsangaben liegen zwischen dem 1. Januar 1900 und dem 6. Juni 2079 und sind auf die Minute genau.

Zeichenfolgen Datentypen

char

Zeichendatentypen für Daten mit fester Länge (char).

char[(n)]

Nicht-Unicode-Zeichendaten fester Länge mit n Byte. n muss ein Wert zwischen 1 und 8.000 sein. Die Speichergröße beträgt n Byte.

varchar

Zeichendatentypen für Daten mit variabler Länge (varchar).

varchar[(n)]

Nicht-Unicode-Zeichendaten variabler Länge mit n Byte. n muss ein Wert zwischen 1 und 8.000 sein. Die Speichergröße entspricht der tatsächlichen Länge der eingegebenen Daten in Byte, nicht n Byte. Die eingegebenen Daten können 0 Zeichen lang sein.

text

Datentypen variabler Länge zum Speichern von großen Nicht-Unicode-Zeichendaten.

Nicht-Unicode-Daten variabler Länge in der Codepage des Servers und mit einer maximalen Länge von 231-1 (2.147.483.647) Zeichen. Auch wenn die Servercodepage Doppelbyte-Zeichen verwendet, ist der Speicherplatz 2.147.483.647 Byte groß. Abhängig von der Zeichenfolge kann die Speichergröße unter 2.147.483.647 Byte liegen.

Hinweise

Wenn n in einer Datendefinitions- oder Variablendeklarationsanweisung nicht angegeben ist, ist die Standardlänge 1. Falls n bei der CAST-Funktion nicht angegeben ist, ist die Standardlänge 30.

Einem Objekt, für das char oder varchar verwendet wird, wird die Standardsortierung der Datenbank zugewiesen, es sei denn, mit der COLLATE-Klausel wird eine bestimmte Sortierung zugewiesen. Die Sortierung bestimmt die Codepage, die zum Speichern der Zeichendaten verwendet wird.

Für Sites, die mehrere Sprachen unterstützen, sollte erwogen werden, den Unicode-Datentyp nchar oder nvarchar zu verwenden, um die Zeichenkonvertierungsprobleme zu minimieren. Wenn Sie char oder varchar verwenden:


Verwenden Sie char, wenn die Datenwerte in einer Spalte vermutlich alle ungefähr die gleiche Größe haben werden.

Verwenden Sie varchar, wenn die Datenwerte in einer Spalte voraussichtlich sehr unterschiedliche Größen haben werden.

Wenn SET ANSI_PADDING auf OFF eingestellt ist, während CREATE TABLE oder ALTER TABLE ausgeführt wird, wird eine als NULL definierte char-Spalte als varchar behandelt.

Auch wenn die Sortierungscodepage Doppelbytezeichen verwendet, ist die Speichergröße nach wie vor n Byte. Abhängig von der Zeichenfolge kann die Speichergröße von n Byte weniger als n Zeichen betragen.

Binär Datentypen

binary

Binäre Datentypen mit fester Länge (binary).

binary [ ( n ) ]

Binäre Daten mit einer festen Länge von n Byte. Der Wert von n muss zwischen 1 und 8.000 liegen. Die Speichergröße beträgt n+4 Byte.

Verwenden Sie binary, wenn die Dateneinträge einer Spalte gleich lang sind.

Wenn n in einer Datendefinitions- oder Variablendeklarationsanweisung nicht angegeben ist, beträgt die Standardlänge 1. Wenn n bei der CAST-Funktion nicht angegeben ist, beträgt die Standardlänge 30.

varbinary

Binäre Datentypen mit variabler Länge (varbinary).

varbinary [ ( n ) ]

Binäre Daten mit einer variablen Länge von n Byte. Der Wert von n muss zwischen 1 und 8.000 liegen. Die Speichergröße ergibt sich aus der tatsächlichen Länge der eingegebenen Daten plus 4 Byte, ist also nicht unbedingt gleich n Byte. Die eingegebenen Daten können 0 Byte lang sein.

Verwenden Sie varbinary, wenn die Dateneinträge einer Spalte unterschiedlich lang sind.

Wenn n in einer Datendefinitions- oder Variablendeklarations-Anweisung nicht angegeben ist, beträgt die Standardlänge 1. Wenn n bei der CAST-Funktion nicht angegeben ist, beträgt die Standardlänge 30.

image

Binärdaten variabler Länge von 0 bis 231-1 (2.147.483.647) Byte.

Image hat nichts direkt mit dem Speicherformat von Bildern zu tun, vielmehr ist es ein neutrales Speicherformat für „fast“ beliebig große Binärdaten beliebigen Inhalts. Das können Bilder, Musik, Videos, speziell codierte Texte und sonstige Daten sein. Lediglich der Daten-Ersteller kann etwas mit diesem Datentyp anfangen, da nur er weiß was darin enthalten ist und wie er zu benutzen ist.

In EULANDA® werden in Teile der SQL-Registry Bilder und andere unstrukturierte Daten mit diesem Datentyp gespeichert.