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

Откуда:
Сообщений: 14
Помогите подобрать нужный Server Collation. Некоторые буквы сервер воспринимает как ? . Как подобрать нужный Collation Type

К сообщению приложен файл. Размер - 9Kb
30 ноя 18, 09:24    [21749411]     Ответить | Цитировать Сообщить модератору
 Re: Server Collation  [new]
Yasha123
Member

Откуда:
Сообщений: 1114
Frequency
Некоторые буквы сервер воспринимает как ?

некоторые буквы это типа кириллические?
если да, то какой-нибудь Cyrillic_General_CI_AS
P.S. после смены серверного коллэйшена
в имеющейся уже базе у вас останется прежний коллэйшен базы
30 ноя 18, 10:08    [21749493]     Ответить | Цитировать Сообщить модератору
 Re: Server Collation  [new]
iap
Member

Откуда: Москва
Сообщений: 46475
Frequency,

не забудьте потом установить COLLATE у баз model и tempdb.
Или только в model и перегрузите сервер.
Иначе будете получать конфликты при использовании текстовых полей временных таблиц.
30 ноя 18, 10:28    [21749524]     Ответить | Цитировать Сообщить модератору
 Re: Server Collation  [new]
Yasha123
Member

Откуда:
Сообщений: 1114
iap
Frequency,

не забудьте потом установить COLLATE у баз model и tempdb.
Или только в model и перегрузите сервер.
Иначе будете получать конфликты при использовании текстовых полей временных таблиц.

думаете, серверный коллэйшен не отразится на базах tempdb/model?
30 ноя 18, 10:33    [21749532]     Ответить | Цитировать Сообщить модератору
 Re: Server Collation  [new]
Yasha123
Member

Откуда:
Сообщений: 1114
iap
не забудьте потом установить COLLATE у баз model и tempdb.

даже лучше так:
вы сами-то пробовали сменить коллэйшен системных баз без ребилда?
вы попробуйте, получите интересное сообщение
30 ноя 18, 10:40    [21749549]     Ответить | Цитировать Сообщить модератору
 Re: Server Collation  [new]
Frequency
Member

Откуда:
Сообщений: 14
[quot Yasha123]
iap
вы сами-то пробовали сменить коллэйшен системных баз без ребилда?


Так можно поменять.

ALTER DATABASE UB_COMMON SET SINGLE_USER WITH ROLLBACK IMMEDIATE;


ALTER DATABASE UB_COMMON SET MULTI_USER WITH ROLLBACK IMMEDIATE;


Нет не кирилица латынь.

ə , ğ , ö , i , ü
30 ноя 18, 10:48    [21749574]     Ответить | Цитировать Сообщить модератору
 Re: Server Collation  [new]
iap
Member

Откуда: Москва
Сообщений: 46475
Yasha123
iap
не забудьте потом установить COLLATE у баз model и tempdb.

даже лучше так:
вы сами-то пробовали сменить коллэйшен системных баз без ребилда?
вы попробуйте, получите интересное сообщение
Какая разница КАК это сделать?
НАДО, и всё.
Без ребилда нельзя? Значит, с ребилдом.
COLLATE tempdb должен быть совместимым с COLLATE рабочей базы.
А tempdb удаляется при каждом shutdown сервера и создаётся при старте.
Любая создаваемая база строится на основе базы model.

P.S. У нас администратор сменил COLLATE в model и tempdb буквально на днях.
Однако, я-то не администратор. Так что подробности у меня не спрашивайте.
30 ноя 18, 10:49    [21749576]     Ответить | Цитировать Сообщить модератору
 Re: Server Collation  [new]
Frequency
Member

Откуда:
Сообщений: 14
ə , ğ , ö , i , ü
30 ноя 18, 10:49    [21749578]     Ответить | Цитировать Сообщить модератору
 Re: Server Collation  [new]
Yasha123
Member

Откуда:
Сообщений: 1114
Frequency

Так можно поменять.

ALTER DATABASE UB_COMMON SET SINGLE_USER WITH ROLLBACK IMMEDIATE;

вам не видно выделенное жирным?
или UB_COMMON системная база?
вы совет iap-а читали?
ну попробуйте выполнить предложенное им
alter database model collate Cyrillic_General_CI_AS

или
alter database tempdb collate Cyrillic_General_CI_AS
30 ноя 18, 10:54    [21749593]     Ответить | Цитировать Сообщить модератору
 Re: Server Collation  [new]
Yasha123
Member

Откуда:
Сообщений: 1114
iap
Какая разница КАК это сделать?

да такая и разница.
он спросил о смене СЕРВЕРНОГО коллэйшена.
если вы не в курсе, то серверный коллэйшен меняется ребилдом СИСТЕМНЫХ БАЗ.
если вы и о системных базах не слышали, как Frequency, то базы темпдб и модел как раз системные.
и вот вы ТС-у и отвечаете:
сменив коллэйшен серверу (т.е. базам мастер, мсдб, ТЕМПДБ И МОДЕЛ)
не забудьте сменить коллэйшен базам ТЕМПДБ И МОДЕЛ.
а теперь объясните мне, как же можно было "забыть", если только что это было сделано?
30 ноя 18, 10:59    [21749606]     Ответить | Цитировать Сообщить модератору
 Re: Server Collation  [new]
Frequency
Member

Откуда:
Сообщений: 14
Могу конечно так , но всю базу в процедурах и view менять долго.

А можно создать таблицу где столбец с типом nvarchar() и префиксом N'' ?

К сообщению приложен файл. Размер - 4Kb
30 ноя 18, 11:00    [21749612]     Ответить | Цитировать Сообщить модератору
 Re: Server Collation  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2368
Frequency,

nvarchar это и есть N,
N добавляется в запросах чтобы сервер понял что ваша строка юникодная
SELECT 'ת' - не уникодная, строка будет воприниматься в коллейшене сервера
SELECT N'ת' - юникодная
30 ноя 18, 12:29    [21749793]     Ответить | Цитировать Сообщить модератору
 Re: Server Collation  [new]
256k
Member

Откуда: с.Торчилово, Псковская обл.
Сообщений: 346
WarAnt
Frequency,

nvarchar это и есть N,
N добавляется в запросах чтобы сервер понял что ваша строка юникодная
SELECT 'ת' - не уникодная, строка будет воприниматься в коллейшене сервера
SELECT N'ת' - юникодная


угу, это и есть ответ на вопрос ТС, без ребилдов и пр. хрени - юникод дата типы надо использовать, а не тасовать collation
30 ноя 18, 12:56    [21749835]     Ответить | Цитировать Сообщить модератору
 Re: Server Collation  [new]
Massa52
Member

Откуда:
Сообщений: 319
256k,
Не все так просто. Если создавать временные таблицы в tempdb, то сравниваться nvarchar поля в основной базе и временной не будут.
Надо будет каждый раз приводить их к одному коллейшену.
30 ноя 18, 13:06    [21749854]     Ответить | Цитировать Сообщить модератору
 Re: Server Collation  [new]
Frequency
Member

Откуда:
Сообщений: 14
Я понял спасибо
30 ноя 18, 13:08    [21749861]     Ответить | Цитировать Сообщить модератору
 Re: Server Collation  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 27408
Massa52
256k,
Не все так просто. Если создавать временные таблицы в tempdb, то сравниваться nvarchar поля в основной базе и временной не будут.
Надо будет каждый раз приводить их к одному коллейшену.
Приводить к одному коллейшену слишком медленно, будет без индексов.

Нормальная практика - создавать nvarchar поля во временной базе с правильным коллейшеном, таким же, как соотв поля в основной. И непонятно, зачем делать по другому, в чём профит, что бы потом заморачиваться с серверным коллейшеном, или что бы для гениального творения разработчиков непременно требовался отдельный сервер со своими, индивидуальными, установками?
30 ноя 18, 14:04    [21749968]     Ответить | Цитировать Сообщить модератору
 Re: Server Collation  [new]
wadegwadeg
Member

Откуда:
Сообщений: 35
alexeyvg
Massa52
256k,
Не все так просто. Если создавать временные таблицы в tempdb, то сравниваться nvarchar поля в основной базе и временной не будут.
Надо будет каждый раз приводить их к одному коллейшену.
Приводить к одному коллейшену слишком медленно, будет без индексов.

Вообще говоря, если приводить к целевому коллейшену - индекс хвататься будет, но творить подобное без крайней необходимости типа непреодолимого наследия на том же сервере... в-общем, расстрел на месте, это вот да.[/quot]
30 ноя 18, 16:27    [21750333]     Ответить | Цитировать Сообщить модератору
 Re: Server Collation  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 27408
wadegwadeg
alexeyvg
Приводить к одному коллейшену слишком медленно, будет без индексов.

Вообще говоря, если приводить к целевому коллейшену - индекс хвататься будет
Да, лучше было сказать "неправильно приводить".
30 ноя 18, 23:24    [21750835]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить