SQL 服务器创建大于 POWER(2,30) 的位集

SQL Server create bitset larger than POWER(2,30)

select POWER(2,31)
select CAST(POWER(2,31) as bigint)

两者都会导致错误:

Arithmetic overflow error for type int, value = 2147483648.000000.

我需要生成超过 64 位的位掩码。我如何在 SQL 服务器中执行此操作? (我正在使用 SQL Server 2008,但如果它只能在 2012+ 中使用,我也想知道)

LiveDemo

SELECT CAST(POWER(2.0,31.0) AS DECIMAL(38,0))

编辑:

最好的方法可能是使用预先计算的值创建自定义计数 table:

╔═════╦═════════════════════╗
║  n  ║       Power_2^n     ║
╠═════╬═════════════════════╣
║ 1   ║ 1                   ║
║ 2   ║ 2                   ║
║ 3   ║ 8                   ║
║ 4   ║ 16                  ║
║ 5   ║ 32                  ║
║ ... ║ ...                 ║
║ 62  ║ 4611686018427387904 ║
║ ... ║ ...                 ║
╚═════╩═════════════════════╝

确认,在 SQL Server Central (http://www.sqlservercentral.com/Forums/Topic619623-338-1.aspx) 上找到这个:

select POWER(CAST(2 AS BIGINT),CAST(31 AS BIGINT))