Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Liste der Datentypen in SQL Server 2017

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.