在SQL Db中将smallint更改为int时,是否会丢失任何数据?这只是一个大小的存储问题吗?

问题描述 投票:1回答:2

我有一个使用访问前端的数据库。用户要求更改在一列中输入的数据,以在Small INT(32,767)大小上包含更大的数字。如果我要将类型更改为Int,可能会有任何数据丢失或任何其他问题?

sql ms-access
2个回答
0
投票

@Ste Willis,根据我的个人经验,除了创造更大的空间来保持更大的价值之外,它不应该有任何影响。所以它应该是有利的而不是其他的。 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,那么你可能会丢失数据。

我有待纠正。


1
投票

由于两种数据类型都是相似的类型,因此您不会遇到任何问题。而且您正在从小型int更改为INT(更大数量的存储),因此不会丢失任何数据。

© www.soinside.com 2019 - 2024. All rights reserved.