sql - 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 的事实不应该足够吗?
解决方案
推荐阅读
- c# - SqlDataAdapter.SelectCommand 没有返回正确的结果
- spring-boot-data-geode - 在@EnableClusterDefinedRegions 之后将@Resource 用于Geode 区域
- material-components-android - 当用户从 NestedScrollView 中启动拖动时,BottomSheet 没有拖动阈值
- ajax - Sails.js 中未触发 Ajax 表单操作
- mysql - MySQL 不准确的计算与平均和日期时间
- python - 来自 GMAIL 编码问题的 Python IMAP
- ios - 应用程序在使用 Xcode 11.3.1 构建后打开时崩溃
- excel - 组合列并计算总库存数量
- databricks - 将数据插入到具有过去时间戳的 databricks 增量表中
- swift - 我应该在 SwiftUI 中查看它们之前创建优化的 UIImages 吗?