【问题标题】:SQL SET DEFAULT not working in MS AccessSQL SET DEFAULT 在 MS Access 中不起作用
【发布时间】:2012-12-12 23:39:01
【问题描述】:

可能重复:
DEFAULT clause in ALTER TABLE statement resulting in syntax error

我正在尝试使用 MS Access 中的 SQL 查询执行以下语句;

ALTER TABLE [table] ALTER COLUMN [column] SET DEFAULT 'default value'

但是,我得到一个对话框,显示错误 Syntax error in ALTER TABLE statement.

当我单击“确定”时,它会突出显示单词DEFAULT。我也试过下面的说法;

ALTER TABLE [table]
ADD CONSTRAINT [Default] DEFAULT 'default value' FOR [column]

我收到另一个错误Syntax error in CONSTRAINT clause.

在 MS Access 中设置默认值的正确语法是什么? db文件为Access 2003格式。

【问题讨论】:

  • 第二个是标准SQL,但我不相信Access中支持它。见ALTER TABLE
  • stackoverflow.com/questions/10440990/…。它不能使用 SQL 来完成。我已投票结束这个问题。
  • 之前的问题是关于 Access 97 db。而且由于大部分 Access DDL 功能(包括 DEFAULT)直到 Jet 4(Access 2000)才引入,因此只有在 Steztric 也使用 Access 97 格式作为其 db 文件时,上一个问题才适用于此。
  • @Steztric 您的数据库文件是什么访问版本?
  • @shahkalpesh:在我看来,不要关闭,因为 Hansup 的回答更好。顺便说一句,没有办法投票反对结束?!

标签: sql ms-access default alter-table alter-column


【解决方案1】:

DEFAULT 的支持已包含在带有 Jet 4 (Access 2000) 的 Access DDL 中。但是它只能用于从 ADO 连接执行的 DDL。

这适用于 Access 2007。

CurrentProject.Connection.Execute "ALTER TABLE MyTable " & _
    "ALTER COLUMN field2 SET DEFAULT ""foo"";"

请注意,如果您的 db 文件是 Access 97 或更早版本,您将无法从 DDL 中设置字段 DEFAULT 值。

【讨论】:

  • 谢谢@HansUp,这就是我要找的。事实上,我在 Access 中执行 SQL 的原因是作为一个沙坑区域,以确保我正在编写正确的 ODB 查询以在代码中执行此操作。
  • 是的,明白了。感谢分享!
  • 不客气。我不确定 ALTER TABLE 是否可以通过 ODBC 连接工作。如果没有,请改用 OleDb 连接,因为它会工作。
  • 我已经在另一个线程(stackoverflow.com/questions/13605663/…)中发布了这个。我刚刚发现,如果您通过 Access 中的 SQL 窗口为 BIT / YESNO 列执行 ALTER TABLE ADD(尚未尝试通过 ADO,但我怀疑它会以相同的方式执行),对于现有行,它将不适用如果您将其设置为TRUE,则默认提供的值,但将其设置为 0。不过,新的值会。谢谢,女士!
【解决方案2】:

看来,您的专栏会有Constraint 的问题。虽然遵循 DDL 语句是正确的方法。

ALTER TABLE Persons ALTER COLUMN City SET DEFAULT 'SANDNES'

Reference

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-05
    • 2019-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多