我有一系列的表,每个表都有一列专门的外语。各种语言有日语、泰语、英语、意大利语、法语,总共超过20种。
所有这些表都是用拉丁文不区分大小写的排序规则设置的。DB工作得很好。
但是现在我试图查询每个表的特定的外语列。让我们从日语开始吧。我希望外语用户输入外文并根据外文列查找记录。
DECLARE @myVar nvarchar(max);
SET @myVar = 'エンジン ストップ リレー' = 'Engine Stop Relay' in english
Select *
FROM tableJapanese
WHERE langString = @myVar;
我尝试过多种校对组合。我甚至复制了表,并将列的排序规则更改为Japanese_CI_AI,并试图以这种方式查询它。
当列为拉丁文或日文时,这些从句都不适用于表格/列的排序规则。
WHERE lang_String collate Japanese_CI_AI = @myVar;
WHERE lang_String = @myVar collate Japanese_CI_AI;
WHERE lang_String collate Japanese_CI_AI = @myVar collate Japanese_CI_AI;
WHERE lang_String collate Japanese_CI_AI = @myVar;
WHERE lang_String = @myVar collate Japanese_CI_AI;
WHERE lang_String collate Japanese_CI_AI = @myVar collate Japanese_CI_AI;
我希望将列/数据库保留为拉丁文排序规则,并在可能的情况下对每种语言的查询进行编码。
这似乎是一个问题,如果是一条蛇,我已经被咬了。有人能看到我错过了什么吗?
2008 R2
溶液
在字段前面添加N,它指示unicode到SQL.
Select *
FROM tblLangJAP_test
WHERE lang_String = N'エンジン ストップ リレー';
效果完美无瑕。
谢谢,
发布于 2012-09-04 12:50:45
在字段前面添加N,它指示unicode到SQL.从tblLangJAP_test选择*,其中lang_String =N‘エンジンストップリレー’;
效果完美无瑕。
https://stackoverflow.com/questions/11676449
复制相似问题