Precedência de tipo de dados (Transact-SQL)

Quando um operador combinar duas expressões com tipos de dados diferentes, as regras de precedência do tipo de dados especificam que o mesmo, com a precedência mais baixa, será convertido para o tipo de dado de maior precedência. Se a conversão não for uma conversão implícita com suporte, um erro será retornado. Quando ambas as expressões de operando tiverem o mesmo tipo de dados, o resultado da operação terá aquele tipo de dados.

O SQL Server usa a seguinte ordem de precedência para tipos de dados:

  1. UDT (tipos de dados definidos pelo usuário) (maior)

  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 (inclusive nvarchar(max) )

  26. nchar

  27. varchar (inclusive varchar(max) )

  28. char

  29. varbinary (inclusive varbinary(max) )

  30. binary (mais baixo)