首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ALTER TABLE语句中的DEFAULT子句导致语法错误

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

Stack Overflow用户
提问于 2012-05-04 08:02:27
回答 2查看 3K关注 0票数 2

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

所需的自定义需要将列添加到现有表中。下面的代码运行良好:

代码语言:javascript
运行
复制
strSQL = "ALTER TABLE Users ADD COLUMN Status BYTE"
pdbDatabase.Execute strSQL

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

代码语言:javascript
运行
复制
strSQL = "ALTER TABLE Users ADD COLUMN Status BYTE DEFAULT 1"

但它们都会导致错误:“ALTER TABLE语句中存在语法错误。(3293)”

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

有没有人能证实这一点,或者给我指出正确的方向,让它正常工作?

谢谢你的帮助。

EN

回答 2

Stack Overflow用户

发布于 2012-05-04 10:58:36

您可以通过使用DAO对象来完成此操作。

关于修改Access表,微软这样说:

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

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

票数 4
EN

Stack Overflow用户

发布于 2012-05-04 08:11:44

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

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10440990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档