【问题标题】:C#-Alter table tname add column cname Long Integer NOT NULL-throws exceptionC#-Alter table tname add column cname Long Integer NOT NULL-抛出异常
【发布时间】:2012-03-07 09:55:55
【问题描述】:

我正在动态创建表和列。

首先创建表,然后使用 alter table 在其中添加列。

但无论何时

ALTER TABLE TNAME 
ADD COLUMN CNAME LONG INTEGER NOT NULL

被执行,它在alter table语句中显示错误。

当有DECIMAL(28,0) NOT NULL时,列添加成功。

数据库是 MS-Access 并使用 C#

long int 有什么问题

【问题讨论】:

  • 访问标签不引用 ms-access 数据库。

标签: c# sql ms-access alter


【解决方案1】:

在 JET SQL 语言中,没有 LONG INTEGER 数据库类型。您只需指定 LONG 或 INTEGER。

我已经使用 Access Query Builder 尝试了您的 sql 语句,但它不喜欢那种语法。但是,您是对的,如果我删除结尾的 NOT NULL,它会接受该语句,尽管 looking here 似乎不是有效的语法。

【讨论】:

  • 如果我不指定不为空。那么它工作正常。它添加具有数字数据类型和 LONG INTEGER 字段类型的列但是当没有空时它会抛出错误
  • 是的,表格是空的。我刚刚创建了一个空白表格并在其中添加了列
  • 不要跳过 NOT NULL,跳过 INTEGER:ALTER TABLE TNAME ADD COLUMN CNAME LONG NOT NULL
  • @Remou 是的,这是正确的方法。但是,正如 OP 指出的那样,我可以确认,如果我删除 NOT NULL,Jet Engine 会接受带有 LONG INTEGER 的字符串。这对我来说很奇怪。
  • 是的,跳过整数并且它正在工作。非常感谢你们俩。
猜你喜欢
  • 2011-02-06
  • 1970-01-01
  • 2013-11-02
  • 2011-11-27
  • 1970-01-01
  • 2017-09-21
  • 2014-04-17
  • 1970-01-01
  • 2023-03-11
相关资源
最近更新 更多