Потеряю ли я какие-либо данные при изменении smallint на int в SQL Db? Это просто проблема с размером хранилища? - PullRequest
1 голос
/ 25 апреля 2019

У меня есть база данных, которая использует интерфейс доступа. Пользователи попросили изменить данные, которые вводятся в один столбец, для включения большего числа по сравнению с размером Small INT (32 767). Если бы я изменил тип на Int, есть ли вероятность потери данных или каких-либо других проблем?

Ответы [ 2 ]

1 голос
/ 25 апреля 2019

Поскольку оба типа данных имеют одинаковые типы, проблем не возникнет. И вы переходите с малого int на INT (хранение большего числа), чтобы не было потери данных.

0 голосов
/ 25 апреля 2019

@ Сте Уиллис, по моему личному опыту, на самом деле это не должно иметь никакого эффекта, кроме создания большего пространства для хранения гораздо больших ценностей. Так что это должно быть выгодно, а не иначе. Типы данных SQL Server INT: BIGINT, INT, SMALLINT, TINYINT

BIGINT  -263 (-9,223,372,036,854,775,808) to 263-1 (9,223,372,036,854,775,807)  8 Bytes
INT -231 (-2,147,483,648) to 231-1 (2,147,483,647)  4 Bytes
SMALLINT    -215 (-32,768) to 215-1 (32,767)    2 Bytes
TINYINT 0 to 255    1 Byte

Это означает, что int намного больше по размеру, чем smallint (по крайней мере, в два раза больше), поэтому переход от smallint к int не должен приводить к потере данных, вместо этого он создает больше места для большего количества данных.

Если вы сделаете обратное, скажем, от int до smallint, вы можете потерять данные.

Я исправлюсь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...