我们的团队正计划将我们的SQL Server数据库上的排序规则更新为UTF-8。我们还计划更新我们的表模式以使用nvarchar()
来获得真正的Unicode字符支持。然而,我们试图确定的是,这样做的潜在地雷是什么?
例如,我们的查询是否会运行得更慢?数据库中的当前数据是否有可能被破坏?
作为参考,SQL Server被用作在Linux主机上的Apache上运行的PHP Web应用程序的后端。
答案 0 :(得分:2)
请参阅MSDN SQL Server Books Online on NVARCHAR - SQL Server仅支持UCS-2(每个字符2个字节= UTF-16),但正如您所说,这是 true Unicode 。
另请参阅this question (and its answer) on dba.stackexchange.com以获得更详尽的说明和背景信息。
使用所有nvarchar
列的主要缺点是这样的事实:与varchar
相比,这只是普通的存储空间的两倍 - 所有字符都存储为2个字节。除此之外 - 我认为使用nvarchar
代替varchar
没有任何重大问题......