Dieser Artikel enthält eine Kurzreferenz der vom System bereitgestellten Datentypen, die in SQL Server 2017 verfügbar sind, zusammen mit einigen grundlegenden Informationen wie der maximalen Länge in Bytes, Genauigkeit, Skalierung und ob der Datentyp nullfähig ist oder nicht (1
bedeutet, dass es nullable ist, 0
bedeutet, dass es nicht nullable ist).
Exakte Zahlen
Name | Max. Länge | Präzision | Skalierung | Nullbar? |
---|---|---|---|---|
bigint | 8 | 19 | 0 | 1 |
bisschen | 1 | 1 | 0 | 1 |
dezimal | 17 | 38 | 38 | 1 |
int | 4 | 10 | 0 | 1 |
Geld | 8 | 19 | 4 | 1 |
numerisch | 17 | 38 | 38 | 1 |
smallint | 2 | 5 | 0 | 1 |
Kleingeld | 4 | 10 | 4 | 1 |
tinyint | 1 | 3 | 0 | 1 |
Ungefähre Zahlen
Name | Max. Länge | Präzision | Skalierung | Nullbar? |
---|---|---|---|---|
schwimmen | 8 | 53 | 0 | 1 |
echt | 4 | 24 | 0 | 1 |
Datum und Uhrzeit
Name | Max. Länge | Präzision | Skalierung | Nullbar? |
---|---|---|---|---|
Datum | 3 | 10 | 0 | 1 |
datetime2 | 8 | 27 | 7 | 1 |
datetime | 8 | 23 | 3 | 1 |
datetimeoffset | 10 | 34 | 7 | 1 |
smalldatetime | 4 | 16 | 0 | 1 |
Zeit | 5 | 16 | 7 | 1 |
Zeichenfolgen
Name | Max. Länge | Präzision | Skalierung | Nullbar? |
---|---|---|---|---|
char | 8000 | 0 | 0 | 1 |
Text | 16 | 0 | 0 | 1 |
varchar | 8000 | 0 | 0 | 1 |
Unicode-Zeichenketten
Name | Max. Länge | Präzision | Skalierung | Nullbar? |
---|---|---|---|---|
nchar | 8000 | 0 | 0 | 1 |
ntext | 16 | 0 | 0 | 1 |
nvarchar | 8000 | 0 | 0 | 1 |
Binäre Zeichenfolgen
Name | Max. Länge | Präzision | Skalierung | Nullbar? |
---|---|---|---|---|
binär | 8000 | 0 | 0 | 1 |
Bild | 16 | 0 | 0 | 1 |
varbinary | 8000 | 0 | 0 | 1 |
Andere Datentypen
Name | Max. Länge | Präzision | Skalierung | Nullbar? |
---|---|---|---|---|
Hierarchie-ID | 892 | 0 | 0 | 1 |
sql_variante | 8016 | 0 | 0 | 1 |
Geometrie | -1 | 0 | 0 | 1 |
Geographie | -1 | 0 | 0 | 1 |
Zeitstempel* | 8 | 0 | 0 | 0 |
eindeutige Kennung | 16 | 0 | 0 | 1 |
xml | -1 | 0 | 0 | 1 |
Systemname | 256 | 0 | 0 | 0 |
* Der Zeitstempel Datentyp ist ein Synonym für rowversion Datentyp. Siehe unten für weitere Informationen.
Die Typen „cursor“, „table“ und „rowversion“
Ich habe die Informationen in den obigen Tabellen über sys.types
abgerufen Systemkatalogansicht. Zusätzlich zu den oben genannten Typen führt die Microsoft-Dokumentation zu Datentypen auch den Cursor auf und Tabelle Typen sowie rowversion statt Zeitstempel .
Der „Zeitstempel“-Typ
Microsoft weist darauf hin, dass der Zeitstempel Syntax ist veraltet. Es wird empfohlen, jetzt rowversion zu verwenden statt Zeitstempel wo immer möglich in unseren DDL-Anweisungen.
In der Zwischenzeit werden Sie jedoch möglicherweise feststellen, dass Spalten immer noch als Zeitstempel definiert zu sein scheinen auch wenn Sie rowversion ausdrücklich angeben beim Erstellen (mit Transact-SQL). Dennoch weist Microsoft darauf hin, dass dies die richtige Syntax für die Zukunft ist.
Beachten Sie auch diesen Zeitstempel in T-SQL/SQL Server unterscheidet sich vom Zeitstempel Datentyp, der im ISO-Standard definiert ist.
Es scheint, dass der Grund für die Ablehnung in der Verwirrung liegt, die sein Name verursacht hat. Microsoft hat dies 2007 anerkannt und darauf hingewiesen, dass sie versuchen würden, es in zukünftigen Versionen auf abwärtskompatible Weise anzugehen.
Überprüfen Sie Ihre eigene Datenbank
Sie können Datentypinformationen für Ihre eigenen Datenbanken abrufen, indem Sie sys.types
verwenden Systemansicht. Eine Erläuterung und Beispiele finden Sie unter Zurückgeben einer Liste von Datentypen in SQL Server. Das Ausführen dieser Ansicht gibt auch alle Aliase und benutzerdefinierten Typen zurück, die sich in der Datenbank befinden.