Priorité des types de données (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Point de terminaison analytique SQL dans Microsoft FabricEntrepôt dans Microsoft Fabric

Quand un opérateur combine des expressions de types de données différents, le type ayant la priorité plus faible est converti en premier dans le type ayant la priorité plus élevée. Si la conversion n’est pas une conversion implicite prise en charge, une erreur est retournée. Pour un opérateur combinant des expressions d’opérandes ayant le même type de données, le résultat de l’opération a également ce type de données.

SQL Server utilise l'ordre de priorité suivant pour les types de données :

  1. types de données définis par l'utilisateur (plus haut niveau de priorité)
  2. sql_variant
  3. xml
  4. datetimeoffset
  5. datetime2
  6. datetime
  7. smalldatetime
  8. date
  9. time
  10. float
  11. real
  12. decimal
  13. money
  14. smallmoney
  15. bigint
  16. int
  17. smallint
  18. tinyint
  19. bit
  20. ntext
  21. text
  22. image
  23. timestamp
  24. uniqueidentifier
  25. nvarchar (dont nvarchar(max) )
  26. nchar
  27. varchar (dont varchar(max) )
  28. char
  29. varbinary (dont varbinary(max) )
  30. binary (minimum)

Voir aussi

Types de données (Transact-SQL)
Expressions (Transact-SQL)
CAST et CONVERT (Transact-SQL)