sql >> Database >  >> RDS >> Sqlserver

Lijst met gegevenstypen in SQL Server 2017

Dit artikel bevat een korte verwijzing naar de door het systeem geleverde gegevenstypen die beschikbaar zijn in SQL Server 2017, samen met enkele basisinformatie zoals maximale lengte in bytes, precisie, schaal en of het gegevenstype nullable is of niet (1 betekent dat het nullable is, 0 betekent dat het niet nullable is).

Exacte cijfers

Naam Maximale lengte Precisie Schaal Nullable?
groot 8 19 0 1
bit 1 1 0 1
decimaal 17 38 38 1
int 4 10 0 1
geld 8 19 4 1
numeriek 17 38 38 1
smallint 2 5 0 1
klein geld 4 10 4 1
tinyint 1 3 0 1

Geschatte cijfers

Naam Maximale lengte Precisie Schaal Nullable?
zweven 8 53 0 1
echt 4 24 0 1

Datum en tijd

Naam Maximale lengte Precisie Schaal Nullable?
datum 3 10 0 1
datetime2 8 27 7 1
datumtijd 8 23 3 1
datetimeoffset 10 34 7 1
smalldatetime 4 16 0 1
tijd 5 16 7 1

Tekenreeksen

Naam Maximale lengte Precisie Schaal Nullable?
char 8000 0 0 1
tekst 16 0 0 1
varchar 8000 0 0 1

Unicode-tekenreeksen

Naam Maximale lengte Precisie Schaal Nullable?
nchar 8000 0 0 1
ntext 16 0 0 1
nvarchar 8000 0 0 1

Binaire tekenreeksen

Naam Maximale lengte Precisie Schaal Nullable?
binair 8000 0 0 1
afbeelding 16 0 0 1
varbinair 8000 0 0 1

Andere gegevenstypen

Naam Maximale lengte Precisie Schaal Nullable?
hiërarchie 892 0 0 1
sql_variant 8016 0 0 1
geometrie -1 0 0 1
geografie -1 0 0 1
tijdstempel* 8 0 0 0
unieke identificatie 16 0 0 1
xml -1 0 0 1
systeemnaam 256 0 0 0

* Het tijdstempel gegevenstype is een synoniem voor de rowversion data type. Zie hieronder voor meer informatie.

De typen 'cursor', 'tabel' en 'rijversie'

Ik heb de informatie in de bovenstaande tabellen opgehaald via de sys.types systeemcatalogus bekijken. Naast de bovenstaande typen vermeldt de documentatie van Microsoft over gegevenstypen ook de cursor en tafel typen, evenals rowversion in plaats van tijdstempel .

Het type 'tijdstempel'

Microsoft adviseert dat de tijdstempel syntaxis is verouderd. Het wordt aanbevolen dat we nu rowversion . gebruiken in plaats van tijdstempel waar mogelijk in onze DDL-overzichten.

In de tussentijd kan het echter zijn dat kolommen nog steeds lijken te zijn gedefinieerd als tijdstempel zelfs als je expliciet rowversion opgeeft bij het maken ervan (met Transact-SQL). Desalniettemin adviseert Microsoft dat dit de juiste syntaxis is om in de toekomst te gebruiken.

Houd er ook rekening mee dat tijdstempel in T-SQL/SQL Server is anders dan de tijdstempel gegevenstype gedefinieerd in de ISO-norm.

Het lijkt erop dat de reden dat het werd afgeschaft, te wijten is aan de verwarring die de naam veroorzaakte. Microsoft erkende dit in 2007 en adviseerde dat ze zouden proberen dit in toekomstige releases op een achterwaarts compatibele manier aan te pakken.

Controleer uw eigen database

U kunt gegevenstype-informatie voor uw eigen databases ophalen met behulp van de sys.types systeem bekijken. Zie Een lijst met gegevenstypen retourneren in SQL Server voor uitleg en voorbeelden. Als u deze weergave uitvoert, worden ook alle aliassen en door de gebruiker gedefinieerde typen geretourneerd die zich in de database bevinden.


  1. Een MariaDB-database verplaatsen naar versleutelde en niet-versleutelde toestanden

  2. MySQL-tijdzones

  3. Kan de IN-operator LIKE-jokertekens (%) gebruiken in Oracle?

  4. De websitedatabase optimaliseren