6

我正在尝试Boolean使用 SQL 在 ms-access 中的表中添加一列。我正在使用 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 数据库只能取true并且false不能为空。因此,我决定使用 andinteger代替。

4

3 回答 3

11

列的等效 SQL 类型Yes/NoBIT

ALTER TABLE tabDatafiveMinutely
    ADD COLUMN CON0001 BIT   DEFAULT 0   NOT NULL

微软的文档

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


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

UPDATE tabDatafiveMinutely SET CON0001 = 0 WHERE CON0001 IS NULL
于 2012-11-28T13:30:33.180 回答
3

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

访问数据类型。

于 2012-11-28T13:11:55.987 回答
0

我不确定您从哪里阅读语法,但您需要更好的来源。

ALTER TABLE tabDatafiveMinutely
ADD COLUMN CON0001 <datatype>

对于布尔类型,我认为您需要从 BIT、INTEGER 或 CHAR(1) 中进行选择。它取决于应用程序。例如,遗留系统经常在 CHAR(1) 列中使用“t”和“f”。

于 2012-11-28T13:20:21.580 回答