SQL设置默认值在MS Access中不起作用

SQL设置默认值在MS Access中不起作用,sql,ms-access,default,alter-table,alter-column,Sql,Ms Access,Default,Alter Table,Alter Column,可能重复: 我试图在MS Access中使用SQL查询执行以下语句 ALTER TABLE [table] ALTER COLUMN [column] SET DEFAULT 'default value' 但是,我得到一个对话框,显示ALTERTABLE语句中的错误语法错误。 当我单击OK时,它会突出显示单词DEFAULT。我还尝试了以下说法 ALTER TABLE [table] ADD CONSTRAINT [Default] DEFAULT 'default value' FOR [

可能重复:

我试图在MS Access中使用SQL查询执行以下语句

ALTER TABLE [table] ALTER COLUMN [column] SET DEFAULT 'default value'
但是,我得到一个对话框,显示ALTERTABLE语句中的错误
语法错误。

当我单击OK时,它会突出显示单词
DEFAULT
。我还尝试了以下说法

ALTER TABLE [table]
ADD CONSTRAINT [Default] DEFAULT 'default value' FOR [column]
我在CONSTRAINT子句中得到另一个错误
语法错误。


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

对默认值的支持已包含在带有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中设置字段
默认值
值。

您的列似乎存在
约束问题。尽管下面的DDL语句是正确的方法

ALTER TABLE Persons ALTER COLUMN City SET DEFAULT 'SANDNES'

第二个是标准SQL,但我认为Access不支持它。看见这不能用SQL来完成。我已经投票结束了这个问题。前一个问题是关于访问97 db的。由于许多Access DDL功能(包括
默认值
)直到Jet 4(Access 2000)才引入,因此只有当Steztric也使用Access 97格式作为其db文件时,前面的问题才适用于此处。@Steztric您的db文件是什么Access版本?@shahkalpesh:不关闭,因为这一版本的答案比Hansup更好,在我看来。顺便说一句,没有办法投票反对一场势均力敌的比赛?!谢谢你@HansUp,这就是我要找的。事实上,我在Access中执行SQL的原因是作为一个沙坑区域,以确保我在代码中编写了正确的ODB查询。谢谢分享!不客气。我不确定ALTER表是否可以通过ODBC连接工作。如果没有,请改用OleDb连接,因为它可以正常工作。我刚刚发现,如果通过Access中的SQL窗口对BIT/YESNO列执行ALTER TABLE ADD(尚未尝试通过ADO,但我怀疑它会以相同的方式执行),对于现有行,如果将其设置为
TRUE
,但将其设置为0,则不会应用提供的默认值。不过,新的会。谢谢,小姐!