Precedenza dei tipi di dati (Transact-SQL)

Si applica a: sìSQL Server (tutte le versioni supportate) Sìdatabase SQL di Azure SìIstanza gestita di SQL di Azure sìAzure Synapse Analytics sìParallel Data Warehouse

Quando un operatore combina espressioni di tipi di dati diversi, il tipo di dati con precedenza inferiore viene per prima cosa convertito nel tipo di dati con precedenza superiore. Se la conversione non è una conversione implicita supportata, viene generato un errore. Se le espressioni dell'operando combinate dall'operatore hanno lo stesso tipo di dati, questo sarà il tipo di dati del risultato dell'operazione.

Per i tipi di dati SQL Server utilizza l'ordine di precedenza seguente:

  1. Tipi di dati definiti dall'utente (superiore)
  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 (incluso nvarchar(max) )
  26. nchar
  27. varchar (incluso varchar(max) )
  28. char
  29. varbinary (incluso varbinary(max) )
  30. binary (inferiore)

Vedere anche

Tipi di dati (Transact-SQL)
Espressioni ( Transact-SQL )
CAST e CONVERT (Transact-SQL)