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.