SQL Server 2000 DTS - не удается разрешить конфликт сопоставления для равной операции - PullRequest
0 голосов
/ 05 октября 2009

У меня есть пакет SQL Server 2000 DTS.

Один из шагов этого пакета имеет следующий SQL:

SELECT *
FROM [Crocus_Limited$OrderRequestDetail]
WHERE (rep_updated > GETDATE() -2) 
AND NOT EXISTS

(SELECT OrderID 
FROM NavisionUpgrade.navision4.dbo.[WEBOrderDetails] rd 
WHERE rd.OrderID =     [Crocus_Limited$OrderRequestDetail].OrderID 
AND rd.NavisionItemNo = [Crocus_Limited$OrderRequestDetail].NavisionItemNo )

Это сбой - дает мне ошибку: не может разрешить конфликт сопоставления для операции равной.

Этот DTS в основном перемещает данные из одной БД в другую (расположенную в разных географических точках)

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

Ответы [ 2 ]

2 голосов
/ 05 октября 2009

Один или оба столбца объединения имеют типы данных char (char, nchar, varchar, nvarchar), которые хранятся в несовместимых сопоставлениях в каждой базе данных.

Вы можете указать параметры сортировки для сравнения строк. Самый простой способ сделать это - указать параметры сортировки по умолчанию для машины, на которой выполняется запрос (я предполагаю, что NavisionItemNo - это столбец проблемы):

...AND rd.NavisionItemNo collate database_default = [Crocus_Limited$OrderRequestDetail].NavisionItemNo collate database_default )

EDIT

OrderID также является столбцом varchar? Если это так, попробуйте

...WHERE rd.OrderID collate database_default = [Crocus_Limited$OrderRequestDetail].OrderID collate database_default
AND rd.NavisionItemNo collate database_default = [Crocus_Limited$OrderRequestDetail].NavisionItemNo ) collate database_default
0 голосов
/ 16 ноября 2009

как упоминалось в двух предыдущих постах, вы должны использовать атрибут collate для каждого нечислового столбца, но посмотрите на сопоставление целевого db и используйте это сопоставление (например, SQL_Latin_CI_AS). Имейте в виду, что таблица может иметь свое собственное сопоставление, даже столбец может иметь другое сопоставление, поэтому внимательно изучите свои определения.

Мир и удача Ice

...