VarChar到NVarChar并返回

时间:2013-05-10 12:17:19

标签: clr sql-server-2012 varchar nvarchar

环境是SQL Server 2012.我即将将clr过程返回的结果列从varchar更改为nvarchar,但我不确定是否可以在varchar中找到字符{1}}代码页将始终转换为unicode中的相同字符,也是另一种方式。糟糕的例子是,如果有人从nvarchar列的过程中获取结果,并将其放在带有varchar列的数据库中。问题是,它们会永远正确转换吗?

1 个答案:

答案 0 :(得分:2)

VARCHAR特定于您的系统代码页。 NVARCHAR包含Unicode字符。 Unicode始终是任何遗留代码页的超集。因此,您可以预期来自VARCHAR的转化 - > NVARCHAR正确映射。但是,如果您的NVARCHAR字符串稍后包含旧版代码页中找不到的Unicode字符,则转换回VARCHAR时字符将会丢失。

如果可能,您应该避免这种类型的转换。将表列更新为NVARCHAR。