Rom*_*ein 75 sql sql-server sqldatatypes unsigned-integer
我特意想的是未签名int.
这是一个实际的例子:当你的身份栏最大化时你会怎么做?它可以去BigInt(8字节存储而不是4字节)或重构应用程序以支持负整数,甚至可以创建自己的规则,如本答案所示 ; 这两种选择都不是最佳选择.
UInt 将是一个理想的解决方案,但SQL Server不提供它(MySQL在哪里).
我知道无符号数据类型不是SQL标准(SQL-2003)的一部分,但对我来说似乎仍然是一种浪费.
不包括这些(在SQL Server或标准中)的原因是什么?
Jef*_*nby 59
如果我不得不猜测,我会说他们正试图避免类型的扩散.一般来说,无符号整数无法执行有符号整数无法执行的任何操作.对于需要2147483648和4294967296之间的数字的情况,您可能应该转到8字节整数,因为该数字最终也将超过4294967296.
CFr*_*tas 45
为此,您可以使用-2,147,483,648作为种子值.
Identity(-2147483648, 1)
Run Code Online (Sandbox Code Playgroud)
Ant*_*y K 40
我在Microsoft Connect上发现了类似的问题.
Jim Hogg(项目经理)的回复有一些关于添加unsigned int的专家和骗局.主要的骗局是实现隐式类型转换的规则成为一个正确的噩梦.
该请求已被关闭为"无法修复".