【问题标题】:MS Access Too Many fields during UPDATE更新期间 MS 访问太多字段
【发布时间】:2011-01-02 00:11:30
【问题描述】:

当我尝试在 MS Access 中更新表时,它会给出错误提示定义的字段过多。我用谷歌搜索,发现我需要修复和压缩,我做了,但仍然不起作用?

有人有什么想法吗?另外,“太多字段”计数器的实际计数是多少?

谢谢。

【问题讨论】:

  • 您能否提供一些有关您如何执行更新的信息?使用 SQL?
  • 查询是否包含超过 255 个字段?
  • 感谢您的回复。该查询旨在在我正在编写的 C# 程序中运行。 foreach(hashtable) 循环构建查询字符串。我在循环中添加了一个计数++,总数没有。 "fields=value" 的值为 144。将字符串复制到剪贴板并在 MS Access SQL 设计模式下粘贴,发生同样的错误。有什么想法吗?
  • 为什么不在此处粘贴字符串?
  • @Remou hmmm.. 好的,贴在这里。只有 140 个“=”符号。另一方面,具有相同数量字段的 INSERT 不会产生此错误。

标签: ms-access


【解决方案1】:

我好像找到了答案:

Microsoft Jet 数据库引擎具有 每个内部限制为 255 个字段 询问。作为 Microsoft Jet 数据库 引擎遍历记录 更新查询,它创建一个字段 对于原始值和一个字段 更新的值。当超过 127 字段被选中,它到达 查询的255个字段限制。

考虑下面的 SQL 更新查询:UPDATE Table SET A=B, C=D 在内部查询看起来像 如下:从表中选择 A、B、C、D

-- http://support.microsoft.com/kb/199076

您有大约 140 个字段,不是吗?

【讨论】:

  • 哇。我根本不知道。当然,我很难想象我需要在哪里执行此操作,因为我没有任何表格,一开始就包含这么多字段。此外,每当我需要在表的两个版本之间协调数据时,我都会进行一系列逐列更新,而不是单个行到行的更新。这可能是我从未遇到过这个问题的原因,因为我生成的 SQL 一次只更新 1 列。
【解决方案2】:

您是否尝试过将 UPDATE 查询拆分为几个?也许把它分成两到三个——在继续下一个之前验证每个都需要吗?可以帮助您解决“字段过多”问题,并让您更轻松地调试问题吗?只是一个想法,您的里程可能会有所不同。

【讨论】:

  • 感谢 Comrad,这正是我现在正在做的事情。但我现在需要的是更多地解释这是如何发生的。因为很明显,我只有 140 个(少于 255 个)字段。
  • @Jake 我怀疑这可能是一个误导性错误,因此我在上面发表了评论。你考虑过数据类型吗?
  • @Remou 是的,我已将数据类型考虑在内。实际上,除了 _LN、_REV 和日期字段之外,所有内容都是文本。对于日期时间字段,似乎它会自动进行类型转换,所以它仍然有效。
  • 另外,如果我分成 2 个更新,它会单独工作。所以我认为分隔符没有太大区别?
猜你喜欢
  • 1970-01-01
  • 2011-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多