Precedenza dei tipi di dati (Transact-SQL)

Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Piattaforma di strumenti analitici (PDW) Endpoint di analisi SQL in Microsoft Fabric Warehouse in Microsoft Fabric

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 usa l'ordine di precedenza seguente:

  1. Tipi di dati definiti dall'utente (superiore)
  2. json
  3. sql_variant
  4. xml
  5. datetimeoffset
  6. datetime2
  7. datetime
  8. smalldatetime
  9. date
  10. time
  11. float
  12. real
  13. decimal
  14. money
  15. smallmoney
  16. bigint
  17. int
  18. smallint
  19. tinyint
  20. bit
  21. ntext
  22. Testo
  23. Immagine
  24. timestamp
  25. uniqueidentifier
  26. nvarchar, incluso nvarchar(max)
  27. nchar
  28. varchar, incluso varchar(max)
  29. char
  30. varbinary, incluso varbinary(max)
  31. binary (inferiore)