表迁移到SQL Server后,Access无法过滤Unicode字符

时间:2014-09-23 18:35:22

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

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

1 个答案:

答案 0 :(得分:4)

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

DatabaseProperties.png

例如,使用上面的SQL Server排序规则设置(“SQL_Latin1_General_CP1_CI_AS”),我无法从Access过滤希腊字符(例如,'γιορτή'),但如果我将SQL Server数据库的排序规则更改为“Greek_CI_AS”,那么相同的Access过滤器将起作用。

修改评论<评论

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

  1. SQL Server不支持的代码页,或
  2. 的Unicode。
  3. Access中的ODBC链接表显然不完全支持Unicode,将搜索字符串作为'text'传递给SQL Server,而不是N'text',因此SQL Server觉得有必要根据所选文本解释任何此类文本单字节代码页(通过“整理”)设置。