在SQL Server中存储UInt32的最佳方法

6

我正在开发一款使用第三方组件的应用程序,该组件返回的值是UInt32类型。

我需要将这个UInt32存储在Sql Server表中。我考虑只使用一个简单的int列,并像这样插入值:

int value = (int)(cs - int.MaxValue);

但我不确定这是否是执行此任务的最佳方法。

3个回答

8
  1. 使用bigint或decimal(10,0)列,并定义检查约束以确保它在0到40亿之间。

  2. 定义CLR数据类型


1
decimal(9,0) 是错误的!你应该使用 decimal(10,0),因为 2^32 = 4294967295,它有 10 个小数位。 - eLVik
8年前就发现了,真是眼光独到。 - gbn

3

我建议您将它存储在bigint列中。


-1

你应该考虑使用 + int.MinValue。因为32位有符号整数的最大值为2147483647,最小值为-2147483648。零会从正数方向占用一个值。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接