1

我正在清理一个 SQL Server 2012 数据库,其中包含一些nvarchar包含混合字符集数据(拉丁语和泰语脚本)的列。例如:

在此处输入图像描述

由于我有许多列具有相同的TariffDescription文本,因此我想使用简单的 UPDATE 命令应用翻译。例如:

UPDATE Tariff.NationalTariff 
SET TariffDescription = 'Liquid.' 
WHERE TariffDescription = 'Thai description: - - ที่มีสภาพเหลว';

但是,当我执行此命令时,SQL Server 不会更新任何行。我通过尝试进行简单的选择来确认问题出在 WHERE 子句上:

SELECT * 
FROM Tariff.NationalTariff 
WHERE TariffDescription = 'Thai description: - - ที่มีสภาพเหลว';

当我期望它返回大约一百行时,这个查询返回零行。

请注意,我通过从结果表中复制和粘贴来填充 WHERE 子句字符串(使用不依赖于TariffDescription列的查询)。我无法输入泰语字符。

我不知道为什么会这样,我最好的猜测是它与混合字符集有关。有任何想法吗?

4

1 回答 1

2

将 N 放在文字文本之前

   SELECT * FROM Tariff.NationalTariff WHERE TariffDescription = N'Thai description: - - ที่มีสภาพเหลว';
于 2014-10-14T01:43:22.070 回答