Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Не удалось разрешить конфликт параметров сортировки между "Cyrillic_General_CI_AS"... / 25 сообщений из 40, страница 1 из 2
22.05.2014, 18:34
    #38649453
googlogmob
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удалось разрешить конфликт параметров сортировки между "Cyrillic_General_CI_AS"...
Не нашел в инете решения по этой проблеме
Установлен новый экземпляр сервера. Через линкованый сервер перелиты некоторые таблицы
Запрос, который без проблем выполнялся на "старом" сервере, на "новом" завершается с ошибкой

Запрос:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
DECLARE @banc TABLE (mask1 NVARCHAR(100), mask2 NVARCHAR(100),name NVARCHAR(100));
INSERT @banc (mask1,mask2, name) VALUES   

  (N'%рога%', N'%копыта%', N'Рога и копыта') ;

   SELECT month (t.[DatePosting]) as 'Месяц', t.LB1 as 'ЛБ1', t.vid as 'Вид', b.name as 'Банк', sum (t.[76]) as 'Платежи'
           FROM [SAO_1Cdata].[dbo].[76]  t
           right JOIN @banc b ON t.externalchannel LIKE b.mask1  OR t.Beneficiary LIKE b.mask1 OR
		                   t.externalchannel  LIKE  b.mask2 OR t.Beneficiary   LIKE  b.mask2 
  GROUP BY month (t.[DatePosting]), t.LB1,t.vid, b.name



ошибка:
Сообщение 468, уровень 16, состояние 9, строка 30
Не удалось разрешить конфликт параметров сортировки между "Cyrillic_General_CI_AS" и "Latin1_General_CI_AS_KS_WS" в операции like.

На "старом" и "новом" серверах установлен "Cyrillic_General_CI_AS"
...
Рейтинг: 0 / 0
22.05.2014, 18:51
    #38649477
daw
daw
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удалось разрешить конфликт параметров сортировки между "Cyrillic_General_CI_AS"...
googlogmob,

collation, начиная еще с 2000-ого сервера можно устанавливать каждому конкретному столбцу.
проверить можно через sys.columns.
...
Рейтинг: 0 / 0
23.05.2014, 12:04
    #38650042
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удалось разрешить конфликт параметров сортировки между "Cyrillic_General_CI_AS"...
авторНа "старом" и "новом" серверах установлен "Cyrillic_General_CI_AS"

авторЧерез линкованый сервер перелиты некоторые таблицы
Чудес не бывает, порядок сортировки сам по себе не изменяется. Значит таблицы были созданы неверно или первая цитата не соответствует истине.
...
Рейтинг: 0 / 0
23.05.2014, 12:45
    #38650122
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удалось разрешить конфликт параметров сортировки между "Cyrillic_General_CI_AS"...
googlogmobЧерез линкованый сервер перелиты некоторые таблицы
И с каким collate "перелиты" ?
...
Рейтинг: 0 / 0
23.05.2014, 13:54
    #38650258
o-o
o-o
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удалось разрешить конфликт параметров сортировки между "Cyrillic_General_CI_AS"...
как вариант, ТС выполняет свой код в базе с коллэйшеном, отличным от коллэйшена той самой базы SAO_1Cdata.
вот пример:
инстанс имеет коллэйшен Cyrillic_General_CI_AS
в нем 2 базы:

test -- унаследовала коллэйшен сервера, в ней же находится таблица dbo.client_cyr со столбцами с коллэйшеном по умолчанию, т.е. сплошной Cyrillic_General_CI_AS

test_Latin1_General_CI_AS_KS_WS -- создана спецом с коллэйшеном Latin1_General_CI_AS_KS_WS .

выполняю один и тот же код в обеих базах, в первой все ок, во второй та самая ошибка:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
select serverproperty('collation') as server_coll, 
       databasepropertyex('test', 'collation') as test_db_coll,
       databasepropertyex('test_Latin1_General_CI_AS_KS_WS', 
       'collation') as test_Latin1_General_CI_AS_KS_WS_db_coll;
go
	
DECLARE @banc TABLE (mask1 NVARCHAR(100), mask2 NVARCHAR(100),
        name NVARCHAR(100));
INSERT @banc (mask1,mask2, name) VALUES   
(N'%рога%', N'%копыта%', N'Рога и копыта') ;
    
select *
from @banc b join test.dbo.client_cyr c on c.FirstName like b.mask1



короче: табличная переменная наследует коллэйшен базы
...
Рейтинг: 0 / 0
23.05.2014, 14:50
    #38650363
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удалось разрешить конфликт параметров сортировки между "Cyrillic_General_CI_AS"...
Проверьте с каким Collation создана tempdb. На временных таблицах #T это имело значение, на @T не уверен, предлагаю вам проверить. В общем, я сталкивался с такой проблемой и она была вызвана нестыковкой Collation текущей базы и базы временных таблиц. Изменить Collation можно только перестановкой сервера (типа Upgrade) с сохранением текущих баз.
...
Рейтинг: 0 / 0
23.05.2014, 14:55
    #38650369
o-o
o-o
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удалось разрешить конфликт параметров сортировки между "Cyrillic_General_CI_AS"...
a_voronin,

типа нечитатель?
в моем примере коллейшен сервера (т.е. его системных баз) тот самый Cyrillic_General_CI_AS,
а ошибку я получаю.
ибо поля табличной переменной унаследовали коллэйшен базы,
где код выполняется. а не коллэйшен Tempdb
...
Рейтинг: 0 / 0
23.05.2014, 14:59
    #38650376
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удалось разрешить конфликт параметров сортировки между "Cyrillic_General_CI_AS"...
o-o,

COLLATE сервера используется как значение по умолчанию при создании новой базы.
ЕМНИП, больше нигде

Табличные переменные хранятся аналогично временным таблицам в tempdb
...
Рейтинг: 0 / 0
23.05.2014, 15:01
    #38650384
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удалось разрешить конфликт параметров сортировки между "Cyrillic_General_CI_AS"...
iapo-o,

COLLATE сервера используется как значение по умолчанию при создании новой базы.
ЕМНИП, больше нигде

Табличные переменные хранятся аналогично временным таблицам в tempdbМожет, и приврал про "значение по умолчанию новых баз", ибо они получаются из базы model.
...
Рейтинг: 0 / 0
23.05.2014, 15:08
    #38650390
o-o
o-o
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удалось разрешить конфликт параметров сортировки между "Cyrillic_General_CI_AS"...
iap,

вы пробовали мой случай воспроизвести?

я где-то спорю, что табличные переменные хранятся в Tempdb?

вы можете рассказать, как сменить коллэйшен системныx баз,
кроме тех "способов", к-ыми меняется коллэйшен сервера?
(т.е. переустановка либо

Rebuild the master database specifying the new collation in the SQLCOLLATION property of the setup command. For example:

Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=InstanceName
/SQLSYSADMINACCOUNTS=accounts /[ SAPWD= StrongPassword ]
/SQLCOLLATION=CollationName

что примерно то же самое по последствиям)???

The server collation acts as the default collation for all system databases that are installed with the instance of SQL Server, and also any newly created user databases.
Set or Change the Server Collation
...
Рейтинг: 0 / 0
23.05.2014, 15:12
    #38650404
o-o
o-o
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удалось разрешить конфликт параметров сортировки между "Cyrillic_General_CI_AS"...
iapiapo-o,

COLLATE сервера используется как значение по умолчанию при создании новой базы.
ЕМНИП, больше нигде

Табличные переменные хранятся аналогично временным таблицам в tempdbМожет, и приврал про "значение по умолчанию новых баз", ибо они получаются из базы model.

а вы пробовали сменить коллэйшен базы model?
да и любой другой системной базы?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
use master
go

alter database model collate Cyrillic_General_CI_AS
go
----------------------
Msg 3708, Level 16, State 5, Line 2
Cannot alter the database 'model' because it is a system database.
...
Рейтинг: 0 / 0
23.05.2014, 15:21
    #38650425
o-o
o-o
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удалось разрешить конфликт параметров сортировки между "Cyrillic_General_CI_AS"...
дошло, как убедить.
подтверждающая картинка:
...
Рейтинг: 0 / 0
26.05.2014, 15:53
    #38652214
googlogmob
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удалось разрешить конфликт параметров сортировки между "Cyrillic_General_CI_AS"...
А каким образом можно решить проблему?
в SAO_1Cdata tempbd используется Cyrillic_General_CI_AS
...
Рейтинг: 0 / 0
26.05.2014, 15:54
    #38652215
googlogmob
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удалось разрешить конфликт параметров сортировки между "Cyrillic_General_CI_AS"...
...
Рейтинг: 0 / 0
26.05.2014, 15:56
    #38652219
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удалось разрешить конфликт параметров сортировки между "Cyrillic_General_CI_AS"...
googlogmobА каким образом можно решить проблему?
Создавать объекты с одинаковыми коллейтами.
Или указывать коллейт в операциях сравнения.
...
Рейтинг: 0 / 0
26.05.2014, 16:02
    #38652231
googlogmob
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удалось разрешить конфликт параметров сортировки между "Cyrillic_General_CI_AS"...
GlorygooglogmobА каким образом можно решить проблему?
Создавать объекты с одинаковыми коллейтами.
Или указывать коллейт в операциях сравнения.

сейчас приходится указывать коллейт в запросах
Но в какой BD указан Latin? В tembbd Cyrillic_General_CI_AS ( в SAO_1Cdata также Cyrillic_General_CI_AS)
...
Рейтинг: 0 / 0
26.05.2014, 16:04
    #38652235
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удалось разрешить конфликт параметров сортировки между "Cyrillic_General_CI_AS"...
googlogmobНо в какой BD указан Latin?
Сраниваются не базы данных, а конкретные поля конкретных таблиц.
Найдите, сравнение каких полей вызывает ошибку.
Выясните, почему эти поля имеют разные коллейты.
...
Рейтинг: 0 / 0
26.05.2014, 16:37
    #38652285
o-o
o-o
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удалось разрешить конфликт параметров сортировки между "Cyrillic_General_CI_AS"...
googlogmobА каким образом можно решить проблему?
в SAO_1Cdata tempbd используется Cyrillic_General_CI_AS

вот что вы пристали к tempdb.
выполните ровно там, где выдается ошибка :
Код: sql
1.
select db_name(), databasepropertyex(DB_NAME(), 'collation')
...
Рейтинг: 0 / 0
26.05.2014, 16:41
    #38652291
o-o
o-o
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удалось разрешить конфликт параметров сортировки между "Cyrillic_General_CI_AS"...
либо:
выполните вот такое
Код: sql
1.
2.
3.
select name, collation_name 
from sys.databases
where collation_name = 'Latin1_General_CI_AS_KS_WS'



а я отгадаю, в какой же базе вы выполняете свой запрос.
у меня на сей супер коллэйшен выдались базы репортинга , у вас, поди, тоже самое
...
Рейтинг: 0 / 0
26.05.2014, 16:44
    #38652296
o-o
o-o
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удалось разрешить конфликт параметров сортировки между "Cyrillic_General_CI_AS"...
googlogmobА каким образом можно решить проблему?


Код: sql
1.
2.
3.
DECLARE @banc TABLE (mask1 NVARCHAR(100) collate Cyrillic_General_CI_AS, 
                     mask2 NVARCHAR(100) collate Cyrillic_General_CI_AS,
                     name  NVARCHAR(100) collate Cyrillic_General_CI_AS);
...
Рейтинг: 0 / 0
26.05.2014, 17:20
    #38652352
googlogmob
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удалось разрешить конфликт параметров сортировки между "Cyrillic_General_CI_AS"...
o-oлибо:
выполните вот такое
Код: sql
1.
2.
3.
select name, collation_name 
from sys.databases
where collation_name = 'Latin1_General_CI_AS_KS_WS'



а я отгадаю, в какой же базе вы выполняете свой запрос.
у меня на сей супер коллэйшен выдались базы репортинга , у вас, поди, тоже самое

не возвращает ни одной записи..

сейчас и приходится через: :(
Код: sql
1.
2.
3.
DECLARE @banc TABLE (mask1 NVARCHAR(100) collate Cyrillic_General_CI_AS, 
                     mask2 NVARCHAR(100) collate Cyrillic_General_CI_AS,
                     name  NVARCHAR(100) collate Cyrillic_General_CI_AS);
...
Рейтинг: 0 / 0
26.05.2014, 17:23
    #38652358
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удалось разрешить конфликт параметров сортировки между "Cyrillic_General_CI_AS"...
googlogmobсейчас и приходится через: :(
BOL

collation_definition
Is the collation of the column that is made up of a Microsoft Windows locale and a comparison style, a Windows locale and the binary notation, or a Microsoft SQL Server collation. If collation_definition is not specified, the column inherits the collation of the current database .

Если вы уверяте, что у вас все базы с Cyrillic_General_CI_AS, то тогда "проблема" с " Через линкованый сервер перелиты некоторые таблицы"
...
Рейтинг: 0 / 0
26.05.2014, 17:27
    #38652366
googlogmob
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удалось разрешить конфликт параметров сортировки между "Cyrillic_General_CI_AS"...
GlorygooglogmobНо в какой BD указан Latin?
Сраниваются не базы данных, а конкретные поля конкретных таблиц.
Найдите, сравнение каких полей вызывает ошибку.
Выясните, почему эти поля имеют разные коллейты.

Таки да.. Столбцы в Latin..

Наверное проще создать новую БД и перелить в нее значения с нужным коллейт
...
Рейтинг: 0 / 0
26.05.2014, 17:30
    #38652368
o-o
o-o
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удалось разрешить конфликт параметров сортировки между "Cyrillic_General_CI_AS"...
если все затрагиваемые поля n varchar,
то можно просто поменять коллэйшен
...
Рейтинг: 0 / 0
26.05.2014, 17:32
    #38652372
googlogmob
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удалось разрешить конфликт параметров сортировки между "Cyrillic_General_CI_AS"...
o-oесли все затрагиваемые поля n varchar,
то можно просто поменять коллэйшен

да, nvarchar.
через alter table? если не сложно, напишите шаблон текста запроса
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Не удалось разрешить конфликт параметров сортировки между "Cyrillic_General_CI_AS"... / 25 сообщений из 40, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]