如何在vb.net中通过SQL添加“布尔”列到ms-access

时间:2012-11-28 13:01:27

标签: sql vb.net ms-access

我正在尝试使用SQL在ms-access中向表中添加Boolean列。我正在使用JET,这是我尝试过的SQL查询。

Query = "ALTER TABLE tabDatafiveMinutely ADD CON0001 BOOLEAN DEFAULT FALSE"
Query = "ALTER TABLE tabDatafiveMinutely ADD CON0001 BOOLEAN"

我得到的错误是“字段定义中的语法错误”

感谢您的帮助

编辑:

我现在想要制作默认的null而不是false。我试过了default null这仍然给了我false,有人可以帮忙吗?

结果:

ms-access数据库只能使用truefalse而不是null。因此,我决定使用integer代替。

3 个答案:

答案 0 :(得分:10)

Yes/No列的等效SQL类型为BIT

ALTER TABLE tabDatafiveMinutely
    ADD COLUMN CON0001 BIT   DEFAULT 0   NOT NULL

Microsoft's documentation

  

注意
  DEFAULT语句只能通过Jet OLE DB提供程序和ADO执行。如果通过Access SQL View用户界面使用,它将返回错误消息。


正如@Pere指出的那样,Jet Engine(Access'查询引擎)不会将DEFAULT值应用于现有行。更改表后必须运行UPDATE语句。

UPDATE tabDatafiveMinutely SET CON0001 = 0 WHERE CON0001 IS NULL

答案 1 :(得分:3)

您应该使用BIT数据类型而不是BOOLEAN。

Access data types.

答案 2 :(得分:0)

我不确定你从哪里读取语法,但是你需要一个更好的来源。

ALTER TABLE tabDatafiveMinutely
ADD COLUMN CON0001 <datatype>

对于布尔类型,我认为你需要从BIT,INTEGER或CHAR(1)中选择。它依赖于应用程序。例如,遗留系统通常在CHAR(1)列中使用't'和'f'。