我正在查询使用SQL_Latin1_General_CP850_BIN2排序规则的SQL Server数据库。其中一个表行具有一个varchar,其值包含+/-字符(Windows-1252代码页中的十进制代码177)。SQL Server - 将varchar转换为另一个排序规则(代码页)以修复字符编码
当我直接在SQL Server Management Studio中查询表时,我在此行中得到了一个乱码字符,而不是+/-字符。当我将此表用作SSIS包中的源时,目标表(使用典型的SQL_Latin1_General_CP1_CI_AS排序规则)最终以正确的+/-字符结尾。
我现在必须构建一个机制,直接查询没有SSIS的源表。我如何做到这一点,我得到正确的字符,而不是乱码?我的猜测是,我需要将列转换/转换为SQL_Latin1_General_CP1_CI_AS排序规则,但由于我不断收到乱码字符,因此无法工作。
我已经试过,没有运气以下:
select
columnName collate SQL_Latin1_General_CP1_CI_AS
from tableName
select
cast (columnName as varchar(100)) collate SQL_Latin1_General_CP1_CI_AS
from tableName
select
convert (varchar, columnName) collate SQL_Latin1_General_CP1_CI_AS
from tableName
我在做什么错?
欢迎StackOverflow上:如果您发布的代码,XML或数据样本,**请**在文本编辑器中突出显示这些行,然后单击编辑器工具栏上的“代码示例”按钮(“{}”),以良好地格式化和语法突出显示它! –