2016-01-15 1 views
2

Я запускаю простой запрос на обновление в студии Mgmt: обновляю имя таблицы mytable = 'Alış', где id = 1. Запрос выполняется нормально, но я вижу, что запись обновляется как name = 'Alis'. Турецкие символы заменены на английский!SQL Server Management Studio меняет символы строкового литерала в запросе обновления

Я вижу из свойств соединения, что Server Language является английским (Соединенные Штаты) и Collation является SQL_Latin1_General_CP1_CI_AS. Но я вижу другие записи с именем = 'Alış', введенным из нашего стороннего приложения, поэтому сервер может хранить турецкие символы.

Так что это должна быть студия mgmt, которая меняет литерал в моем запросе. Как я могу запустить sql update?

+0

попробовать некоторые вещи, как' обновление туЬаЫе имя набора = N'Alış»' –

+0

@ user1666620 но если строка префикс с символом „N“ это показывает, что последующая строка в UNICODE –

+0

@JaydipJ жаль мою ошибку, пропустил что. – user1666620

ответ

1

Вы должны бросить строку в UNICODE символов, поэтому изменить запрос обновления, как

UPDATE mytable SET name=N'Alış' WHERE id=1 

Если Строка Предшественник с N, который показывает последующую строку в UNICODE. Или мы можем сказать, что «N» представляет «Национальный Ланг». Char. Set «

+0

Спасибо! Просто любопытно: не лучше ли SSMS отображать все строковые литералы в запросах как unicode? Я считаю, что многие люди могут столкнуться с одной и той же проблемой. –

+0

@CaginUludamar Да, вы можете. Всегда лучше отображать строку как unicode –

Смежные вопросы