MSSQL整数范围分析(mssql int 范围)

SQL的整数是范围比较有限的,它的最大整数限制只有2^31-1(2,147,483,647),最小整数限制为-2^31(-2,147,483,648)。如果要了解数据库中的整数的范围,就需要通过一些查询语句来获取。MSSQL提供了一个查询,它能够显示所有整数字段的范围,该查询如下所示:

SELECT

o.name,

CASE

WHEN t.name in (‘tinyint’, ‘smallint’, ‘int’, ‘bigint’) THEN

CONCAT(‘Integer Range: Min=’, CAST(t.name AS VARCHAR(max)), ‘Max=’, CAST(t.name AS VARCHAR(max)))

ELSE

CONCAT(‘-N/A-‘)

END AS RangeInfo

FROM sys.objects o

INNER JOIN sys.columns c ON o.object_id = c.object_id

INNER JOIN sys.Types t on c.user_type_id = t.user_type_id

WHERE t.name in (‘tinyint’,’smallint’,’int’,’bigint’)

ORDER BY o.name

运行这条查询语句后,就可以从结果集中看到各个整数字段的范围,如下所示:

TABLE1

RangeInfo

Integer Range: Min=tinyintMax=tinyint

Integer Range: Min=smallintMax=smallint

Integer Range: Min=intMax=int

Integer Range: Min=bigintMax=bigint

从上表可以看出,tinyint字段可以使用-128到127。smallint字段可以使用-32,768到32,767。int字段可以使用-2,147,483,648到2,147,483,647。bigint字段可以使用-9,223,372,036,854,775,808到9,223,372,036,854,775,807。

可以看出MSSQL整数范围有限,尤其是对于需要存储更大的值的场景时,工程师就需要考虑其他的数据类型进行处理和存储。另外,整数字段在插入数据时,工程师还要检查字段的范围是否不可接受,如果不可接受,要采用相应的函数将值处理。最后如果要帮助工程师了解整数字段范围,MSSQL提供的上述查询语句就可以派上用场。


数据运维技术 » MSSQL整数范围分析(mssql int 范围)