То, что вы видите, не то, что вы получаете.
Для столбца type SQL Server выбирает правильный более широкий тип (float
over tinyint
, decimal
более int
).Вы можете проверить это, выполнив select into
вместо простого выбора.
Это просто другие правила отображения.
Когда выбран тип столбца float
, вы не можетене видно завершающего .000
, когда нет дробной части.
Для decimal
с установленными явными позициями, например decimal(8,3)
, вы увидите завершающий .000
, даже если нет дробной части.Если вы удалите спецификатор и оставите только decimal
в качестве типа столбца, .000
исчезнет.
Все, что не влияет на фактический тип столбца, который всегда является самым широким.