如何将boolean数据类型列添加到sql中的现有表?

Mik*_*ike 10 sql sql-server alter-table

我的数据库中有一个名为person的表.我想在同一个表中添加另一列,它是一个布尔数据类型列.我尝试了以下查询,但它说默认语法错误.我知道这很常见,而且有很多答案.我已经尝试了很多这些并且无法弄清楚它是否有效.所以请帮助我.

查询我试过了

ALTER TABLE person add column "AdminApproved" BOOLEAN SET default FALSE;
ALTER TABLE person alter column "AdminApproved" BOOLEAN SET default FALSE;         
Run Code Online (Sandbox Code Playgroud)

我也试过没有SET关键词.

Pரத*_*ீப் 24

在SQL SERVER中BIT,尽管它允许NULL存储

ALTER TABLE person add  [AdminApproved] BIT default 'FALSE';
Run Code Online (Sandbox Code Playgroud)

您的查询中还有其他错误

  1. 当您更改表以添加列时,无需columnalter语句中提及关键字

  2. 要添加默认约束,不需要使用SET关键字

  3. BIT列的默认值可以是('TRUE' or '1')/ ('FALSE' or 0).TRUE或者FALSE需要提及的string不是标识符

  • 这里只是一个警告.BIT不是真正的布尔值.它允许3种状态,0,1和NULL.这很微妙但很重要.你也不能像布尔一样对它进行编码. (4认同)
  • 这将创建一个可为空的布尔值。这是正确的:`ALTER TABLE [person] add [AdminApproved] BIT DEFAULT 0 NOT NULL;` (2认同)

MEC*_*MEC 14

Pரதீப்给出的答案创造了一个可以为空的布尔,而不是一个布尔,这可能对你没问题.例如在C#中它会创建:bool? AdminApproved不是bool AdminApproved.

如果你需要创建一个bool(默认为false):

    ALTER TABLE person
    ADD AdminApproved BIT
    DEFAULT 0 NOT NULL;
Run Code Online (Sandbox Code Playgroud)