【发布时间】:2010-04-25 23:20:11
【问题描述】:
我知道在 SO 上有多个关于此的问题,但我还没有找到“是的,这就是如何......”的明确答案
所以又来了:在 SQL Server 中将无符号整数值(32 位值或 32 位位图)存储到 4 字节字段中的可能方法是什么?
以下是我看到的想法:
1) 对所有值使用 -1*2^31 偏移量
- 缺点:需要在读/写/聚合之前对值进行数学运算。
2) 使用 4 个 tinyint 字段
- 缺点:需要连接值来执行任何操作
3) 使用二进制(4)
- 缺点:实际使用4+2字节空间(编辑:varbinary(4)使用4+2,binary(4)只使用4)
- 需要在 SqlBinary 中工作或转换为/转换为其他类型
【问题讨论】:
-
二进制(4)如何使用 6 个字节的空间?一个 varbinary(4)?当然。但是二进制(4)?
-
顺便说一句,这里的实际问题是:如何在四个字节的空间中存储 2^32 个正值,或者只是如何存储 2^32 个正值?
标签: sql-server types unsigned