【问题标题】:Can't compare Unicode characters from different version of Unicode. SQL server无法比较来自不同版本 Unicode 的 Unicode 字符。 SQL 服务器
【发布时间】:2014-05-23 12:05:25
【问题描述】:

我有两张桌子

Table1 : EmployeeID nvarchar(20), 员工姓名 nvarchar(50)

(几年前由某人创建。)

Table2 : EmployeeID nvarchar(20), 员工姓名 nvarchar(50)

(我最近创建了更新应用程序。)

但是,我似乎无法比较一些 unicode 字符。例如:“D123”中的“D”。 我试过这个查询,但它不适用于那些字符。

update Table2 set
Table2.EmployeeName = (select Table1.EmployeeName from Table1
where Table1.EmployeeID like Table2.EmployeeID)

还有

update Table2 set
Table2.EmployeeName = (select Table1.EmployeeName from Table1
where Table1.EmployeeID like N'%' + Table2.EmployeeID +'%')

但它仍然无法正常工作。这两个表在 EmployeeID 列中都有这个“Ð123”,它们都是 unicode 类型。所以我认为由于unicode的不同版本可能会导致这个问题,但我不知道如何解决它。希望你能帮忙。

【问题讨论】:

  • 请解释“不工作”是什么意思。 “不同版本的 unicode”极不可能与您的问题有关;很可能在创建早期表时数据库排序规则不同。
  • 返回0行效果。但我找到了临时修复它的方法。谢谢。

标签: sql sql-server unicode nvarchar


【解决方案1】:

我找到了一种临时方法来解决这个问题,方法是将 table1 和 table2 加载到 c# 应用程序,然后比较并更新回数据库。

【讨论】:

    猜你喜欢
    • 2014-12-23
    • 1970-01-01
    • 2011-05-18
    • 1970-01-01
    • 2012-01-09
    • 2013-01-01
    • 2011-05-13
    • 2017-02-23
    • 2013-09-04
    相关资源
    最近更新 更多