Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Юникод и collation в MSSQL.  [new]
tosha1983
Member

Откуда: Киев
Сообщений: 5
Добрый день! Есть вот такая ситуация. На одном сервере есть две БД.
db1 - с collation SQL_Latin1_General_CP1_CI_AS, все текстовые поля - nvarchar
db2 - с collation Cyrillic_General_CI_AS

В SQL managment studio выполнем запрос, в котором четко указано с какой базы и таблицы брать записи:

select * from [db1].[dbo].[tbl1] where Field='Текст'

И вот какой интересный результат.. Если в managment studio выбрана база db2, или master то ограничение where Field='Текст' срабатывает и выводятся только нужные записи. Если этот же запрос выполнить но в managment studio будет выбрана база db1 то запрос не возвращает ничего. Хотя запрос то выполняется на одной и той же базе. Почему так происходит?

Знаю что N'Текст' решит мою проблему, но интересно почему так происходит?
20 июн 14, 17:23    [16196940]     Ответить | Цитировать Сообщить модератору
 Re: Юникод и collation в MSSQL.  [new]
Glory
Member

Откуда:
Сообщений: 104751
tosha1983
Почему так происходит?

Потому что ваш 'Текст' - это не Unicode
20 июн 14, 17:24    [16196948]     Ответить | Цитировать Сообщить модератору
 Re: Юникод и collation в MSSQL.  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
tosha1983
интересно почему так происходит?
use db1;
select sql_variant_property('Текст', 'collation');
use db2;
select sql_variant_property('Текст', 'collation');
20 июн 14, 18:11    [16197163]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить