首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么SQL Server不支持无符号数据类型?

为什么SQL Server不支持无符号数据类型?
EN

Stack Overflow用户
提问于 2010-12-15 23:57:46
回答 6查看 78.3K关注 0票数 97

我特别考虑的是未签名的int

这里有一个实际的例子:当你的身份列达到最大值时,你该怎么做?可以使用BigInt (8字节存储而不是4字节),也可以重构应用程序以支持负整数,甚至可以按照this answer中的说明创建自己的规则;这两种选择都不是最优的。

UInt将是一个理想的解决方案,但是SQL Server不提供它(而MySQL提供)。

我知道无符号数据类型不是SQL标准(SQL-2003)的一部分,但在我看来仍然是一种浪费。

不包括这些(在SQL Server或标准中)的原因是什么?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-12-16 00:08:33

如果要我猜的话,我会说他们是在努力避免类型的激增。一般来说,无符号整数可以做的任何事情都是有符号整数做不到的。至于当你需要一个介于2147483648和4294967296之间的数字时,你可能应该使用一个8字节的整数,因为这个数字最终也会超过4294967296。

票数 74
EN

Stack Overflow用户

发布于 2012-01-09 23:05:11

为此,您可以使用-2,147,483,648作为种子值。

代码语言:javascript
运行
复制
Identity(-2147483648, 1)
票数 71
EN

Stack Overflow用户

发布于 2013-08-08 15:25:17

我发现了一个类似的问题on Microsoft Office Dev Center.

Jim Hogg (程序经理)的回复对于添加无符号整数有一些优点和缺点,主要缺点是实现隐式类型转换的规则成为正确的噩梦。

该请求被关闭为"Won't Fix“。

票数 51
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4451967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档