如何将计算 [位] 数据类型字段添加到 SQL Table?

How do I add a Calculated [bit] Data Type field to a SQL Table?

我想添加一个从布尔 [int] 字段计算得到的 [bit] 字段

SQL Table 如下所示:

CREATE TABLE [dbo].[AutoIndexBoolean](
    [RowID] [int] NOT NULL,
    [Boolean] [int] NULL,
    [BooleanCalc2] AS (case when [Boolean]=(0) then 'False' when [Boolean]=(1) then 'True'  end),

SQL 添加列的查询如下所示:

ALTER TABLE [dbo].[AutoIndexBoolean]
ADD [BooleanBit] [bit] AS (CASE WHEN [Boolean]=(0) THEN '0' WHEN [Boolean]=(1) THEN '1' END)

一旦我指定数据类型“[bit]”,AS 就会变成语法错误。

如何将计算 [位] 字段添加到我的 table?

提前致谢

您需要 CAST/CONVERTCASE 表达式返回的值。您可以像下面这样简短地执行此操作:

ALTER TABLE dbo.AutoIndexBoolean 
    ADD BooleanBit AS TRY_CONVERT(bit,Boolean);

如果您的列 Boolean 可以具有 10 的其他值,则执行如下操作:

ALTER TABLE dbo.AutoIndexBoolean 
    ADD BooleanBit AS CONVERT(bit, CASE Boolean WHEN 0 THEN 0 WHEN 1 THEN 1 END);

当然,真正的 解决方案似乎是将您的列 Boolean 更改为 bit,然后您不需要第二列。