【问题标题】:"Syntax error in field definition." when trying to create a computed column“字段定义中的语法错误。”尝试创建计算列时
【发布时间】:2019-03-19 13:47:42
【问题描述】:

我正在尝试使用 C# 在我的 Access 数据库中创建一个计算列。运行以下代码时出现错误

字段定义中的语法错误。

在第 4 行。

OleDbConnection conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=database1.accdb");
conn.Open();
OleDbCommand cmd = new OleDbCommand("ALTER TABLE Tabelle1 ADD Test as Skill1 + Skill2 PERSISTED", conn);
cmd.ExecuteNonQuery();
conn.Close();

任何想法我做错了什么?

【问题讨论】:

  • ALTER TABLE 看起来是错误的。 Skill1 + Skill2 是什么意思?
  • 我不知道 MS Access 支持表中的计算列。
  • @GordonLinoff 已经回答了这个问题before

标签: c# sql ms-access


【解决方案1】:

我认为 MS Access 不支持计算列。在 SQL Server 中,您会这样做:

ALTER TABLE Tabelle1 ADD Test as (Skill1 + Skill2) PERSISTED

MS Access 中的一种方法是使用视图:

CREATE VIEW v_Tabelle1 as
    SELECT t.*, (Skill1 + Skill2) as Test
    FROM Tabelle1 t;

或者切换到支持计算列的数据库。

【讨论】:

  • MS Access 确实支持计算列。它们被称为计算字段,请参阅Office support。不过,我不认为有 DDL 支持。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-21
  • 1970-01-01
  • 2019-11-30
  • 1970-01-01
  • 2020-12-28
  • 1970-01-01
相关资源
最近更新 更多