【问题标题】:SQL Server int length propertySQL Server int 长度属性
【发布时间】:2019-02-02 03:00:35
【问题描述】:

我有一个 SQL Server 数据库。我的一个表有一个名为id 的列,当我在连接到数据库的程序中创建一个新项目时,它会自动递增。现在最高的id是9175,现在我担心最高的可能是9999。我检查了id列的属性,见下图。

“长度”属性表示 4。这对 int 意味着什么?这是否意味着数据库不会接受 10000 的 id?我怎样才能知道?

【问题讨论】:

  • Sql Server 中的数据类型 INT 可以高达 2,147,483,647,请参阅文档 (docs.microsoft.com/en-us/sql/t-sql/data-types/…),是的 Length 表示数据类型 INT 的大小为 4 字节
  • Visual Studio 中的 4 可能意味着 4 字节。
  • 只是为了好玩,看看quora.com/How-is-an-integer-value-stored-in-the-memory-in-C 这将使您了解他们如何将 2.14B 打包成 4 个字节。
  • 另一个提示是数值精度:最大值占十进制数。这与说它存储 10 位数字不同。由于范围是 -2,147,483,648 到 2,147,483,647,因此它无法处理许多更大的 10 位数值。

标签: sql sql-server tsql int


【解决方案1】:

在 SQL Server 中 INT 具有范围:

int -2^31 (-2,147,483,648) 到 2^31-1 (2,147,483,647) 4 字节

INT情况下的长度4是大小的指示符(4字节)。

【讨论】:

  • 好的,那么一个int的长度就是一个int的大小呢?
  • 4是指上面提到的4个字节。换句话说,超过 9999 就不用担心了。
  • 如果 10000 是您的上限,我是否可以建议其范围为 -2^15 (-32,768) to 2^15-1 (32,767) 并且重量为 2 个字节(而不是 4 个)? tl;dr - 为您的用例选择正确的数据类型。
猜你喜欢
  • 2022-01-27
  • 1970-01-01
  • 1970-01-01
  • 2021-02-27
  • 1970-01-01
  • 2022-12-08
  • 1970-01-01
  • 2018-10-08
  • 2011-06-04
相关资源
最近更新 更多