我正在寻找是否可以将具有各种字符集(例如拉丁语和日语字母)的多种语言的字符存储到SQL Server 2008/12数据库的VARCHAR
列中。我在sql server中读到了collations的概念。我无法将数据类型更改为NVARCHAR
。是否有模仿Unicode字符集的代码页?是否正确地说VARCHAR
类型的列中的数据将按照排序规则中指定的代码页编码?另外,系统如何将字符从一个代码页映射到另一个代码页?
答案 0 :(得分:1)
你必须使用nvarchar
数据类型来存储占用多个字节的字符(是的,我知道你已经说过你不能改变它,只是谈论选项)。
如果一个字节足够,我建议使用不同的列,并为每种语言使用适当的排序规则。整理不仅影响比较和排序,还影响信息的存储和可能的转换方式(当它发生时这不是一件好事。)
如果您不需要本地化排序功能,请使用binary
归类。
MSDN上还有一个使用UTF-8 UDT的示例:
http://msdn.microsoft.com/en-us/library/ff877964%28v=sql.110%29.aspx