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

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

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

  1. определяемые пользователем типы данных (высший приоритет);

  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 (включая nvarchar(max));

  26. nchar;

  27. varchar (включая varchar(max));

  28. char;

  29. varbinary (включая varbinary(max));

  30. binary (низший приоритет).