2012-01-17 39 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

相關問題