SQL Server - Convertir varchar à un autre classement (page de code) pour fixer l'encodage des caractères

Je suis de l'interrogation d'une base de données SQL Server qui utilise le SQL_Latin1_General_CP850_BIN2 classement. L'une des lignes de la table a une colonne varchar avec une valeur qui inclut le +/- caractère (code décimal 177 dans le Windows-1252 page de codes).

Quand j'ai une requête à la table directement dans SQL Server Management Studio, je reçois un charabia caractère au lieu de +/- personnage dans cette ligne. Lorsque j'utilise cette table comme source dans un package SSIS, la table de destination (qui utilise le typique SQL_Latin1_General_CP1_CI_AS classement), se termine avec la corriger de +/- caractère.

J'ai maintenant de construire un mécanisme qui interroge directement la table source sans SSIS. Comment dois-je faire cela d'une manière que je reçois le caractère correct au lieu de charabia? J'imagine que j'aurais besoin pour le convertir/cast de la colonne pour le classement SQL_Latin1_General_CP1_CI_AS mais qui ne fonctionne pas comme je reçois un charabia de caractère.

J'ai essayé suivantes avec pas de chance:

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

Ce que je fais mal?

Bienvenue sur StackOverflow: si vous publiez du code XML ou des échantillons de données, veuillez mettre en évidence les lignes dans l'éditeur de texte et cliquez sur le "code d'échantillons" ( { } ) sur la barre d'outils editeur de bien le format et la surbrillance de la syntaxe!

OriginalL'auteur lunadesign | 2011-11-11