有没有办法生成2的幂增量的身份或序列?

Lee*_*aas 6 sql-server

在我的代码中,我倾向于使用许多Flags枚举,这些枚举对应于包含其所有行为属性的DB表.这样,行为属性既可以在SP中使用,也可以在使用枚举的C#代码中使用.

我的问题是Enums附加了Flags属性.

有没有办法自动生成2的幂作为此类表的标识列(或序列)?

PS:目前我手动将代码放在小表中 - 或者以编程方式放在随时间变化的表中 - 我更喜欢自动进行

cod*_*biz 7

据我所知,答案是否定的.标识意味着按您指定的种子值递增,默认值为1.但是你可以在2的倍数中具有同一性.例如2,4,6,8,10

 id INT identity(2, 2)   -- starts at 2, increments by 2
Run Code Online (Sandbox Code Playgroud)

如果你想要别的东西,你可能需要实现自己的东西.

计算列

create table t
(
   id int identity, 
   power_id as power(2, id), 
   name varchar(50)
)

Results

ID  POWER_ID    TEXT
-------------------------------
1   2           SHORT      ----2^1
2   4           MEDIUM     ----2^2
3   8           LONG       ----2^3
Run Code Online (Sandbox Code Playgroud)