SQL Server,varchar数据到nvarchar数据

时间:2010-05-10 12:19:18

标签: sql-server varchar nvarchar

我有一个数据库,其中包含colish Danish_Norwegian_CS_AS和许多varchar列。我想将所有这些数据转换为unicode,但尚未找到转换此数据的方法。如果我理解正确,使用的编码是UCS-2 little endian。

例如,我有一个包含'PÃ¥l-Trygve'的列,可以使用Encoding.Default.GetString(Encale.UTF8.GetBytes(“PÃ¥l-Trygve”)使用C#轻松转换为'Pål-Trygve' “));

有没有办法在Microsoft SQL Server客户端中执行此转换?

3 个答案:

答案 0 :(得分:0)

你能使用CONVERT语句吗?或者我在这里错过了细微差别?

来自http://msdn.microsoft.com/en-us/library/ms187928.aspx

答案 1 :(得分:0)

在sql server中,如果你在你喜欢的语句之前放了一个N字符,它会转换为unicode。 例如:

update mytable
set mycol = N'PÃ¥l-Trygve'

insert into mytable
values (N'PÃ¥l-Trygve',...)

答案 2 :(得分:0)

在您对Sam的回答的评论中,您说“varchar列中的数据是ucs2小端字符串的二进制代码,而不是ascii。”。这与你在哪里有文字的问题所说的不同。

所以,我创建了一整套并行表(带有nvarchar列)并通过一些c#代码加载它们。然后删除,重命名等。这在t-sql

中并不容易