首页 > 解决方案 > SQL 多语言排序规则

问题描述

我们有一个数据库(SQL Server 2016),它需要存储多种语言(英语、阿拉伯语、希伯来语、俄语和法语)的文本,我们事先不知道用户将输入哪种语言。

我们将 nvarchar 用于所有文本列。但是,我们不确定哪种排序规则最适合这种情况?例如,如果我们搜索 firstname,但我们不知道使用的语言,我们如何确保我们有正确的排序规则?

此外,由于某种原因,当我们执行插入时,无论是否使用 N 对于所有语言(两者都有效),值都可以正确存储insert into tbl_users (firstname) values ('David')insert into tbl_users (firstname) values (N'David')但是,当我们尝试更新值时,如果我们在某些语言中不使用 N,我们会遇到问题。对于例子:

Update tbl_users set firstname = N'ديفيد' works in Arabic

Update tbl_users set firstname = 'ديفيد'在阿拉伯语中不起作用(已存储问号)

这个问题是阿拉伯语特有的。我们将列定义为 nvarchar 的事实不应该足够吗?

标签: sqlsql-servermultilingualarabiccollation

解决方案


推荐阅读