Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Liste des types de données dans SQL Server 2017

Cet article contient une référence rapide des types de données fournis par le système disponibles dans SQL Server 2017, ainsi que des informations de base telles que la longueur maximale en octets, la précision, l'échelle et si le type de données est nullable ou non (1 signifie qu'il est nullable, 0 signifie qu'il n'est pas nullable).

Chiffres exacts

Nom Longueur maximale Précision Échelle Nullable ?
bigint 8 19 0 1
bit 1 1 0 1
décimal 17 38 38 1
entier 4 10 0 1
l'argent 8 19 4 1
numérique 17 38 38 1
smallint 2 5 0 1
petite monnaie 4 10 4 1
tinyint 1 3 0 1

Chiffres approximatifs

Nom Longueur maximale Précision Échelle Nullable ?
flottant 8 53 0 1
réel 4 24 0 1

Date et heure

Nom Longueur maximale Précision Échelle Nullable ?
date 3 10 0 1
dateheure2 8 27 7 1
dateheure 8 23 3 1
datetimeoffset 10 34 7 1
smalldatetime 4 16 0 1
heure 5 16 7 1

Chaînes de caractères

Nom Longueur maximale Précision Échelle Nullable ?
caractère 8000 0 0 1
texte 16 0 0 1
varchar 8000 0 0 1

Chaînes de caractères Unicode

Nom Longueur maximale Précision Échelle Nullable ?
nchar 8000 0 0 1
texte 16 0 0 1
nvarchar 8000 0 0 1

Chaînes binaires

Nom Longueur maximale Précision Échelle Nullable ?
binaire 8000 0 0 1
image 16 0 0 1
varbinaire 8000 0 0 1

Autres types de données

Nom Longueur maximale Précision Échelle Nullable ?
hierarchyid 892 0 0 1
sql_variant 8016 0 0 1
géométrie -1 0 0 1
géographie -1 0 0 1
horodatage* 8 0 0 0
identifiant unique 16 0 0 1
xml -1 0 0 1
nom_sys 256 0 0 0

* L'horodatage le type de données est synonyme de rowversion Type de données. Voir ci-dessous pour plus d'informations.

Les types "cursor", "table" et "rowversion"

J'ai récupéré les informations dans les tableaux ci-dessus via le sys.types vue du catalogue système. En plus des types ci-dessus, la documentation de Microsoft sur les types de données répertorie également le curseur et tableau types, ainsi que rowversion au lieu de horodatage .

Le type "horodatage"

Microsoft conseille que l'horodatage la syntaxe est obsolète. Il est recommandé d'utiliser maintenant rowversion au lieu de horodatage dans la mesure du possible dans nos déclarations DDL.

Cependant, en attendant, vous constaterez peut-être que les colonnes semblent toujours être définies comme timestamp même lorsque vous spécifiez explicitement rowversion lors de leur création (à l'aide de Transact-SQL). Néanmoins, Microsoft indique qu'il s'agit de la syntaxe correcte à utiliser à l'avenir.

Notez également que horodatage dans T-SQL/SQL Server est différent de l'horodatage type de données défini dans la norme ISO.

Il semble que la raison pour laquelle il a été déprécié est due à la confusion causée par son nom. Microsoft l'a reconnu en 2007 et a indiqué qu'il essaierait de le résoudre de manière rétrocompatible dans les futures versions.

Vérifiez votre propre base de données

Vous pouvez récupérer les informations de type de données pour vos propres bases de données en utilisant le sys.types vue système. Voir Comment renvoyer une liste de types de données dans SQL Server pour une explication et des exemples. L'exécution de cette vue renvoie également tous les alias et types définis par l'utilisateur qui se trouvent dans la base de données.