MS ACCESS中表级验证表达式中的语法错误

本文关键字:语法 表达式 错误 ACCESS MS 验证 | 更新日期: 2023-09-27 18:11:13

OleDbCommand oleDbCmd = new OleDbCommand();
OleDbConnection bookConn = Sqlhelper.Conncect_Mdb();
oleDbCmd.Connection = bookConn;
oleDbCmd.CommandText = "ALTER TABLE doc_comp ADD COLUMN versioncode NUMBER DEFAULT 0";
oleDbCmd.ExecuteNonQuery();
bookConn.Close();

这是我的代码alter table在ms访问,它抛出错误语法错误在表级验证表达式。这段代码在不添加'DEFAULT 0'的情况下工作得很好。我使用的是MS ACCESS 2007。

MS ACCESS中表级验证表达式中的语法错误

你的代码为我工作,如果我使用以下连接字符串:

static public OleDbConnection Conncect_Mdb()
{
    const string oledb = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=scratch.accdb";     
    var conn = new OleDbConnection(oledb);
    conn.Open();
    return conn;
}

有一些较旧的驱动程序,特别是那些运行在ODBC上的驱动程序,它们需要您指明在驱动程序中需要哪种sql支持。在Odbc连接字符串中进行此类设置的一个示例是ExtendedAnsiSQL=1

如果你的安装没有微软Access数据库引擎2010,它也支持Access 2007,你可以从微软下载下载并安装可重新发布的

这个答案不属于特定的问题,但它确实回答了标题....中发布的错误信息

Syntax error in table-level validation expression in MS ACCESS

我收到了这个确切的错误,修复是从查询语句的末尾删除一个分号。

我正在使用OP的查询来呈现解决方案…

oleDbCmd.CommandText = "ALTER TABLE doc_comp ADD COLUMN versioncode NUMBER DEFAULT 0**;**";

,

oleDbCmd.CommandText = "ALTER TABLE doc_comp ADD COLUMN versioncode NUMBER DEFAULT 0";

从查询语句中删除被星号包围的分号。