ALTER TABLE 语句中的 DEFAULT 子句导致语法错误



我有一个客户想要定制一个旧的 Visual Basic 5 应用程序,该应用程序使用 Access 97 数据库和 Jet 3.5 作为数据库引擎。

所需的自定义需要将列添加到现有表中。以下工作正常:

strSQL = "ALTER TABLE Users ADD COLUMN Status BYTE"
pdbDatabase.Execute strSQL

但是,我想为新列设置默认值(即 0 或 1)。我已经尝试了以下和一些变体:

strSQL = "ALTER TABLE Users ADD COLUMN Status BYTE DEFAULT 1"

但它们都会导致错误,指出"ALTER TABLE 语句中的语法错误。(3293)"

在研究这个问题时,我看到了一些信息,这些信息在我过时的 Access 97 和 Jet 3.5 配置中不支持 DEFAULT 子句。

任何人都可以确认这一点或指出我正确的方向来使其工作吗?

感谢您的帮助。

你可以通过使用DAO对象来做到这一点。

Microsoft这样说修改访问表:

此外,某些类型的 Microsoft Access 特定属性(如字段的 ValidationRule 和 DefaultValue 属性)只能通过 Microsoft Access 用户界面或通过代码中的 DAO 进行设置。

您可以在下面的链接中阅读更多相关信息。有一些示例,尽管我没有看到它们使用 DefaultValue 属性具体显示的位置。http://technet.microsoft.com/en-us/library/cc966376.aspx

根据Access 97/Jet 3.5 SQL文档,在描述ALTER Table或CREATE Table语句时没有提到DEFAULT子句。 这里将其描述为 Jet 4.0 的新功能:http://support.microsoft.com/kb/275561

我确定的唯一方法是设置默认值是在 gui 中打开表格设计,然后在字段属性下输入默认值。 您是否有权访问 Access 97 的安装?

不过,我也猜测使用 VB/VBA,您可能可以访问字段的默认值属性并设置或修改 - 只是不使用 sql。

最新更新