Неправильный язык в результатах SQL-запросов - PullRequest
2 голосов
/ 06 февраля 2010

У меня есть база данных SQL Server 2005 для локали Turkish_CI_AS. Для языкового стандарта на компьютере с SQL Server задан турецкий язык. Турецкий десятичный разделитель - «,», а разделитель тысяч - «.». Существует поле с десятичным типом данных (14, 3) и записью со значением «400 123» (это четыреста). Когда я использую Open Table в SQL Manager, значение корректно в таблице результатов. Но когда я запрашиваю таблицу в окне SQL-запроса, результатом будет «400.123», что неверно. Я также получаю этот неверный результат в моих результатах запроса Linq. Что я должен сделать, чтобы получить правильное значение?

Ответы [ 3 ]

0 голосов
/ 07 февраля 2010

Какой язык по умолчанию используется для входа в систему? Вы можете проверить это, выбрав sys.server_principals, или спросить администратора базы данных, если у вас нет прав для просмотра имени входа в этом представлении. http://msdn.microsoft.com/en-us/library/ms188786.aspx

0 голосов
/ 11 февраля 2010

Единственный способ выбраться из этого места - преобразовать десятичную дробь в строку, заменить точку ничем (пустая строка), а затем запятой на точку. Как в

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

Не элегантно, но помогает преобразовать из Excel в SQL-сервер, где я столкнулся с проблемой до сих пор.

0 голосов
/ 06 февраля 2010

Попробуйте изменить столбец таблицы для указания collation_name как изменить столбец myNogoodColation Collate Turkish_BIN

обратитесь за помощью: 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}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...