我有一系列表格,每个表格都有专门的外语列。语言有日语、泰语、英语、意大利语、法语等20多种。
所有这些表都使用拉丁文不区分大小写排序规则设置。数据库工作正常。
但现在我正在尝试查询每个表的特定外语列。让我们以日语作为初学者。我希望外语用户输入外文并根据外语栏查找记录。
DECLARE @myVar nvarchar(max);
SET @myVar = 'エンジン ストップ リレー' = 'Engine Stop Relay' in english
Select *
FROM tableJapanese
WHERE langString = @myVar;
我尝试了多种排序规则组合。我什至复制了表格并将列的排序规则更改为 Japanese_CI_AI 并尝试以这种方式查询它。
当列是拉丁文或日文时,这些 WHERE 子句均不适用于表/列排序规则...
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;
我想将列/数据库保留为拉丁排序规则,并尽可能对每种语言的查询进行编码。
这似乎是我已经被蛇咬过的问题之一。谁能看到我错过了什么?
MSSQL 速成版 2008 R2
解决方案:
字段前加N,表示unicode to SQL...
Select *
FROM tblLangJAP_test
WHERE lang_String = N'エンジン ストップ リレー';
完美运行。
谢谢,