Приоритет типов данных (Transact-SQL)

Относится к:SQL ServerБаза данных SQL AzureУправляемый экземпляр SQL AzureAzure Synapse AnalyticsSQL аналитическая конечная точка в Microsoft FabricХранилище в Microsoft FabricSQL база данных в Microsoft Fabric

Если оператор сочетает выражения различных типов данных, тип данных с меньшим приоритетом сначала преобразуется в тип данных с большим приоритетом. Если неявное преобразование не поддерживается, возвращается ошибка. Если оператор сочетает выражения операндов с одинаковым типом данных, результат операции будет иметь тот же тип данных.

SQL Server использует следующий порядок приоритета для типов данных:

  1. JSON (самый высокий)
  2. sql_variant
  3. xml
  4. Пользовательские типы данных
  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. text
  23. image
  24. timestamp
  25. uniqueidentifier
  26. nvarchar, включая nvarchar(max)
  27. nchar
  28. varchar, включая varchar(max)
  29. char
  30. vector
  31. varbinary, включая varbinary(max)
  32. Бинарный (самый низкий)

Типы данных иерархии, геометрии и географии имеют более высокий приоритет, чем типы строк и бинар.