1

如何创建在 ID 自动增量上自动增加第二列 (BitField) 的表?

ID: 0 ->  BitField: 2^0 = 1
ID: 1 ->  BitField: 2^1 = 2
ID: 2 ->  BitField: 2^2 = 4
ID: 3 ->  BitField: 2^3 = 8
ID: 4 ->  BitField: 2^4 = 16
ID: 5 ->  BitField: 2^5 = 32
ID: 6 ->  BitField: 2^6 = 64
//etc

这适用于作为位掩码的用户表字段(按照“权限”的思路思考)。所以一个附带的问题是:你认为有一个一对多的选项和一个多对多表来授予每个用户是一个更好的实现(甚至不确定如何将所有这些信息格式化成一行所以使用位掩码)?

4

1 回答 1

1
CREATE TABLE [dbo].[Test](
[Id] [int] NOT NULL,
[BitField] AS (power((2),[id]))
                        ) ON [PRIMARY]

GO

-- Testing
INSERT INTO Test(Id) VALUES(2)
INSERT INTO Test(Id) VALUES(6)
INSERT INTO Test(Id) VALUES(8)

SELECT * FROM Test


Id  BitField
2   4
6   64
8   256
于 2013-09-24T00:22:43.787 回答