2012-12-27 100 views
6

可能重复:
DEFAULT clause in ALTER TABLE statement resulting in syntax errorSQL SET DEFAULT在MS Access不工作

我试图执行使用MS Access中的SQL查询下面的语句;

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

不过,我得到显示错误Syntax error in ALTER TABLE statement.

一个对话框,当我点击OK凸显了字DEFAULT。我也尝试了以下声明;

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

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

什么是设置在MS Access的默认值正确的语法?该数据库文件是Access 2003格式。

+1

第二个是标准的SQL,但我不认为它在Access支持的功能。请参阅['ALTER TABLE'](http://msdn.microsoft.com/en-us/library/office/bb177883(v = office.12).aspx) –

+0

http://stackoverflow.com/questions/10440990/默认子句中,改变表语句,导致式的语法错误。它不能用SQL来完成。我已投票结束这个问题。 – shahkalpesh

+0

上一个问题是关于Access 97数据库。而且由于很多Access DDL功能(包括'DEFAULT')在Jet 4(Access 2000)之前没有引入,所以前面的问题只有在Steztric也使用Access 97格式作为他的db文件时才适用。 – HansUp

回答

5

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

这个工作与Access 2007

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

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

+0

谢谢@HansUp,这就是我一直在寻找的东西。实际上,我在Access中执行SQL的原因是作为sandpit区域,以确保我正在编写正确的ODB查询来在代码中执行此操作。 – Steztric

+0

是的,明白了。感谢分享! – Steztric

+0

不客气。我不确定ALTER TABLE是否可以从ODBC连接中使用。如果没有,请使用OleDb连接,因为它可以工作。 – HansUp

0

看来,你的专栏会出现Constraint问题。尽管遵循DDL语句是正确的方法。

ALTER TABLE Persons ALTER COLUMN City SET DEFAULT 'SANDNES' 

Reference

+0

这不起作用。 – htm11h