2010-02-06 4 views
2

J'ai une base de données SQL Server 2005 définie sur les paramètres régionaux Turkish_CI_AS. Le paramètre de paramètres régionaux du PC de SQL Server est défini sur turc. Le séparateur décimal turc est "," et le séparateur des milliers est ".". Il y a un champ avec un type de données decimal (14, 3) et il a un enregistrement avec la valeur "400,123" (c'est quatre cents). Lorsque j'utilise Open Table dans SQL Manager, la valeur est correcte dans la grille résultat. Mais lorsque j'interroge la table dans la fenêtre de requête SQL, la valeur du résultat est "400.123" ce qui est faux. Je reçois également ce mauvais résultat dans mes résultats de requête Linq. Que dois-je faire pour obtenir la bonne valeur?Paramètres régionaux incorrects dans les résultats de requête SQL

Répondre

0

Essayez de modifier la colonne de table à specife collation_name comme colonne Alter myNogoodColation Collate Turkish_BIN

regarder ici l'aide: ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.en/tsqlref9/html/56483d24-add7-483d-9b96-c6fda460ddbc.htm

COLLATE {| database_default} :: = {Windows_collation_name} | {SQL_collation_name}

+0

Il semble que vous ne pouvez pas utiliser le classement BIN avec le type de données décimal: Le type d'expression décimal n'est pas valide pour la clause COLLATE. – dstr

0

Quelle est la langue par défaut du login que vous utilisez? Vous pouvez le vérifier en sélectionnant sys.server_principals, ou demandez DBA si vous ne disposez pas des droits pour voir la connexion à ce point de vue http://msdn.microsoft.com/en-us/library/ms188786.aspx

+0

Je l'ai vérifié, il est défini comme "us_english". Aussi SELECT @@ language dit "us_english" (sont-ils liés?). – dstr

0

La seule façon que j'ai jamais eu de cet endroit était de convertir la décimale une chaîne, remplacez le point par rien (alias chaîne vide) puis la virgule avec un point. Comme dans

Replace(Replace(Cast(<value> as varchar(14)), '.', ''), ',', '.') 

pas élégant, mais aide à convertir Excel au serveur SQL où je rencontrai le problème jusqu'à présent.

Questions connexes