Precedenza dei tipi di dati (Transact-SQL)

Quando due espressioni di tipi di dati diversi vengono combinate da un operatore, le regole per la precedenza dei tipi di dati specificano che i tipi con precedenza inferiore vengano convertiti nei tipi con precedenza superiore. Se la conversione non è una conversione implicita supportata, viene generato un errore. Se a entrambe le espressioni dell'operando è associato lo stesso tipo di dati, quest'ultimo viene assegnato al 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)