我正在运行 SQL Server 2005 和 .Net 2.0。我有一些表需要在同一列中以多种语言存储数据。例如,带有 ArticleID(身份)和 ArticleName (nvarchar 100) 的 Article 表。 ArticleName 中的数据可能采用各种语言。
我的数据库使用 SQL_Latin1_General_CP1_CI_AS 的默认排序规则,因为我们的大部分数据都是英文的。
我的应用程序中的每个用户都可以选择他/她的首选文化。在用户界面中,文章数据显示在数据网格中,用户可以按 ArticleName 对它们进行排序。
现在,由于我的数据库整理,排序顺序不正确。我正在考虑通过使用 ORDER BY ... COLLATE 子句来解决这个问题。但是如何将正确的用户文化映射到 SQL Server 排序规则?我是否必须像这样指定每种文化 - 例如。如果culture = zh-CN(中国PRC),则使用排序规则Chinese_PRC_CI_AS 等等...
有没有更好的方法来获取排序规则?我的方法正确吗?或者有没有更好的方法来处理这个?(我确实想过在 .Net 中实际执行排序,但这似乎是在浪费 CPU 时间。)感谢阅读。