【问题标题】:Case sensitive WHERE in Access 2010Access 2010 中区分大小写的 WHERE
【发布时间】:2011-06-12 08:26:53
【问题描述】:

我必须将 paradox 数据库中的数据导入新创建的 WPF/SQL-Server 应用程序。我已成功将必要的 paradox-data 导入 Access,现在正在编写一个实用程序来转换数据并将其导入 SQL Server。

现在我遇到了悖论主键似乎区分大小写的问题。这导致我有一个主键为“Au”的记录和其他主键为“AU”的记录,它们不一样。

现在我正在寻找在 Access 中编写更新脚本的可能性以便我可以编写

UPDATE [TABLE_NAME] SET [PKFIELD]="Au1" WHERE [PKFIELD]='Au'

仅影响具有 [PKFIELD]='Au' 的行,而不影响具有 [PKFIELD]='AU' 的行

有没有我可以使用的功能或如何实现。

【问题讨论】:

  • 为什么投反对票?这个问题肯定是关于编程的。如果您投反对票,请发表评论,以便帖子所有者知道他做错了什么。如果是我自己找到了答案,你会建议我删除这个问题吗?我认为对于另一个搜索相同内容的人来说,这篇文章会很有帮助,这就是我发布解决方案并且没有删除该帖子的原因。但是我不知道这是否是不可行的。请通知我。
  • 据我所知,这是一个有用的问题,而且 SO 是一个 wiki,而不是问答论坛,所以即使你已经知道,也没有理由不问问题答案。

标签: sql ms-access ms-access-2010


【解决方案1】:

好的,我问的有点快。我自己找到了答案:

UPDATE [TABLE_NAME] SET [PKFIELD]="Au1" WHERE StrComp([PKFIELD],'Au', 0) = 0

【讨论】:

  • 如果是:WHERE PKFIELD Like 'Au*' AND StrComp([PKFIELD],'Au', 0) = 0,您的 WHERE 子句会更有效。原因是因为第一个条件将使用索引来减少与 StrComp() 比较的记录数。没有它,它将不得不在每一行上运行 StrComp()。
猜你喜欢
  • 2013-06-15
  • 2014-10-19
  • 1970-01-01
  • 2016-11-26
  • 1970-01-01
  • 2011-10-16
  • 2018-02-14
  • 2016-09-03
  • 2021-05-09
相关资源
最近更新 更多