表迁移到 SQL Server 后,Access 无法筛选 Unicode 字符

5 sql-server ms-access ms-access-2010

我已经使用他们的工具将 MS Access 2010 数据移动到 SQL,现在按 Unicode 过滤在 Access 链接表中不起作用。我看到 SQL 中的链接表列是“nvarchar”,但在 Access 中,“Unicode 压缩”设置为“否”,我无法更改它。

Gor*_*son 5

据我了解,“Unicode 压缩”设置仅影响本机 Access (ACE/Jet) 表,而对 ODBC 链接表没有影响。相反,您可能需要做的是使用 SQL Server Management Studio 更改 SQL Server 数据库本身的“排序规则”设置:

数据库属性.png

例如,使用上述 SQL Server 排序规则设置(“SQL_Latin1_General_CP1_CI_AS”),我无法从 Access 筛选希腊字符(例如,'??????'),但是如果我将 SQL Server 数据库的排序规则更改为“Greek_CI_AS” " 那么相同的访问过滤器将起作用。

编辑回复:评论

虽然此解决方案适用于 SQL Server 本机支持的单字节代码页(例如,希腊语,它对应于 Windows-1253),但它不适用于缺少这些代码页并且必须由

  1. SQL Server 不支持的代码页,或
  2. 统一码。

Access 中的 ODBC 链接表显然不完全支持 Unicode,将搜索字符串传递给 SQL Server 作为'text',而不是作为N'text',因此 SQL Server 感觉必须根据选定的单字节代码页(通过“排序规则”)设置来解释任何此类文本.