2012-01-17 71 views
1

我可以在sql服务器的id字段上设置一个自动增量,使每行的id加倍吗?有没有什么办法自动增加一个sql服务器id加倍?

+0

你的意思是说每一行都有以前的双倍值,比如1,2,4,8,16 ......? – pistipanko 2012-01-17 07:49:09

+0

@pistipanko - 是的 – froadie 2012-01-17 07:50:09

+3

会是什么意思?行总数会有严重的下限 - 这样只是预填充它们似乎是可行的。 – 2012-01-17 07:51:53

回答

6

不,您只能算术(增加)而不是几何(增加)增量。
这样的功能无论如何都不会有用。如果第一行的值为1,并且乘以2,那么行值将是第64行的1,2,4,8,... 18446744073709551616。

上一个值太大而不适合bigint列,因此每个表最多只能存储63行。

如果您确实需要少于64行,那么关闭主键上的自动增量并仅使用设置值不会太麻烦。

+0

哦。谢谢。我们正在考虑使用它来进行一些二进制处理,但由于大小限制,我们最终可能会将该字段存储为十六进制字符串 – froadie 2012-01-17 08:15:09

+0

SQL Server具有用于存储二进制数据的'binary'和'varbinary'列类型,您可以并应该)使用它们来保存二进制处理的数据。 – SWeko 2012-01-17 08:49:27

+1

使用1的增量,然后自己对其进行运算。也就是说,0 =功率(2,0),1 =功率(2,1)等。但是,正如SWeko指出的那样,你仍然限于使用63个“比特” – 2012-01-17 13:38:04

相关问题