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

Откуда: Санкт-Петербург
Сообщений: 177
Выполняю следующую команду
INSERT INTO [Help].[dbo].[x$curstation] ([suserId])
(
SELECT db_user_netname FROM [Lite].[dbo].[DB_User]
EXCEPT
SELECT suserId FROM [Help].[dbo].[x$curstation]
);
GO

Вылезает ошибка: "Cannot resolve the collation conflict between "SQL_Latin1_General_CP1251_CI_AS" and "Cyrillic_General_CI_AS" in the EXCEPT operation."

Понятно что это из-за разных Collation, у базы Help - SQL_Latin1_General_CP1251_CI_AS, у базы Lite - Cyrillic_General_CI_AS
Пытаюсь изменить следующим образом

INSERT INTO [Help].[dbo].[x$curstation] ([suserId])
(
SELECT db_user_netname FROM [Lite].[dbo].[DB_User] COLLATE database_default
EXCEPT
SELECT suserId FROM [Help].[dbo].[x$curstation] COLLATE database_default
);
GO

либо

INSERT INTO [Help].[dbo].[x$curstation] ([suserId])
(
SELECT db_user_netname FROM [Lite].[dbo].[DB_User] COLLATE Cyrillic_General_CI_AS
EXCEPT
SELECT suserId FROM [Help].[dbo].[x$curstation] COLLATE SQL_Latin1_General_CP1251_CI_AS
);
GO

пишет ошибку - Incorrect syntax near the keyword 'COLLATE'.

В чем ошибка?
3 окт 11, 15:37    [11374908]     Ответить | Цитировать Сообщить модератору
 Re: Конфликт Collation  [new]
iap
Member

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

напишите явно COLLATE у полей в SELECTе
3 окт 11, 15:39    [11374933]     Ответить | Цитировать Сообщить модератору
 Re: Конфликт Collation  [new]
COLLATE
Guest
mism,
...
SELECT db_user_netname COLLATE Cyrillic_General_CI_AS FROM [Lite].[dbo].[DB_User] 
...
3 окт 11, 15:39    [11374937]     Ответить | Цитировать Сообщить модератору
 Re: Конфликт Collation  [new]
mism
Member

Откуда: Санкт-Петербург
Сообщений: 177
COLLATE, iap

Спасибо большое
3 окт 11, 15:42    [11374968]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить