在表上设置列约束(SQL Server)

And*_*rey 2 sql sql-server constraints

我有一个列应该包含2个幂n:2,4,8,16,32等值之一.我想在表模式级别强制执行 - 有没有办法指定这样的列约束?

谢谢!

Mar*_*ith 5

这个答案中无耻地窃取你可以使用按位操作来非常有效地执行此操作.

ALTER TABLE tablename ADD CONSTRAINT
    ckname CHECK (colName > 0 AND (colName & (colName - 1) =0))
Run Code Online (Sandbox Code Playgroud)