sql – Microsoft Jet通配符:星号或百分号?

前端之家收集整理的这篇文章主要介绍了sql – Microsoft Jet通配符:星号或百分号?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Microsoft Jet中LIKE操作符中的多个字符通配符是什么,什么设置影响(如果有)?我正在支持运行在Microsoft Jet(在Access数据库)上的旧ASP应用程序,它使用LIKE运算符中的%符号,但是我有一个客户在他的环境中显然有问题,因为%字符被理解为常规字符,我假设他的多字符通配符是*.此外,我几乎肯定,在过去我已经使用*而不是%编写了查询的应用程序.最后,Microsoft Access(作为应用程序)也只能与*而不是%(但我不知道它是多么相关).

我只花了大约20分钟搜索互联网,没有任何有用的结果,所以我认为这将是有用的问stackoverflow.有人可能已经知道了,最好比任何其他随机论坛保持stackoverflow的潜在答案.

解决方法

直接的答案是通配符的行为取决于正在使用的接口的ANSI查询模式.

ANSI-89查询模式(‘传统模式’)使用*字符,ANSI-92查询模式(‘sql Server兼容模式’)使用%字符.这些模式特定于ACE / Jet,并且仅与ANSI / ISO sql-89和sql-92标准相似.

ADO接口(OLE DB)始终使用ANSI-92查询模式.

DAO接口始终使用ANSI-89查询模式.

使用ODBC时,可以通过ExtendedAnsiSQL标志显式指定查询模式.

从2003版起,MS Access用户界面可以使用任一查询模式,因此不要在任何给定的时间假设它是一个或另一个(例如,不要在验证规则中使用查询模式特定的通配符).

ACE / Jet sql语法有一个ALIKE关键字,它允许ANSI-92查询模式字符(%和_),而不管接口的查询模式如何,但是ALIKE关键字不是与sql-92兼容的轻微缺点ALIKE保持高度便携性).然而,主要的缺点是,我明白ALIKE关键字不是正式支持(尽管我不能想像它会消失或随时改变行为).

猜你在找的MsSQL相关文章