Pages de Code SQL Server et les Classements
Est-il de toute façon dans SQL Server de déterminer ce qu'est un personnage dans une page de code représenterait sans pour autant créer une base de données de test de ce classement?
Exemple. Si j'ai créer une base de données de test avec classement SQL_Ukrainian_CP1251_CS_AS
et puis ne CHAR(255)
il retourne я
.
Si j'essaie de la façon suivante sur une base de données avec SQL_Latin1_General_CP1_CS_AS
classement cependant
SELECT CHAR(255) COLLATE SQL_Ukrainian_CP1251_CS_AS
Il retourne y
SELECT CHAR(255)
Retourne ÿ
c'est de toute évidence va tout d'abord via la base de données par défaut de classement puis essayer de trouver l'équivalent le plus proche dans le classement explicite. Cela peut-il être évité?
OriginalL'auteur Martin Smith | 2011-03-03
Vous devez vous connecter pour publier un commentaire.
Alors que MS SQL prend en charge les deux pages de code Unicode et unhelpfully il ne propose pas de fonctions de conversion entre les deux afin de déterminer quel personnage est représenté par une valeur dans une autre page de code est un cochon.
Il y a deux méthodes que j'ai vu pour gérer les conversions, on est détaillée ici
http://www.codeguru.com/cpp/data/data-misc/values/article.php/c4571
et implique la montaison d'un personnalisé programme de conversion sur la base de données et en utilisant que pour les conversions.
L'autre est de construire une table db composé de
avec la valeur unicode stockées que soit le type int qui représente le caractère unicode pour être convertis en utilisant
nchar()
ou la nchar lui-mêmeVotre utilisant le classement
SQL_Ukrainian_CP1251_CS_AS
qui est le code de la page 1251 (CP1251 du centre de la chaîne). Vous pouvez saisir sa table de traduction ici http://unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1251.TXTSon un TSV donc après le parage le haut les données brutes doivent importer assez proprement.
Personnellement j'avais pencher davantage vers ce dernier que l'ex-surtout pour un serveur de production que l'ancien peut engendrer une instabilité.
OriginalL'auteur Robb
En fait, j'ai trouvé une réponse à ma question maintenant. Un peu maladroit, mais fait le travail, sauf si il ya une meilleure façon?
OriginalL'auteur Martin Smith