Не удается разрешить конфликт сопоставления между «SQL_Latin1_General_CP1_CI_AS» и «Latin1_General_CI_AS» в операции равных - PullRequest
290 голосов
/ 22 октября 2009

У меня есть следующий код

SELECT tA.FieldName As [Field Name],
       COALESCE(tO_A.[desc], tO_B.[desc], tO_C.Name, tA.OldVAlue) AS [Old Value],
       COALESCE(tN_A.[desc], tN_B.[desc], tN_C.Name, tA.NewValue) AS [New Value],
       U.UserName AS [User Name],
       CONVERT(varchar, tA.ChangeDate) AS [Change Date] 
  FROM D tA
       JOIN 
       [DRTS].[dbo].[User] U 
         ON tA.UserID = U.UserID
       LEFT JOIN 
       A tO_A 
         on tA.FieldName = 'AID' 
        AND tA.oldValue = CONVERT(VARCHAR, tO_A.ID)
       LEFT JOIN 
       A tN_A 
         on tA.FieldName = 'AID' 
        AND tA.newValue = CONVERT(VARCHAR, tN_A.ID)
       LEFT JOIN 
       B tO_B 
         on tA.FieldName = 'BID' 
        AND tA.oldValue = CONVERT(VARCHAR, tO_B.ID)
       LEFT JOIN 
       B tN_B 
         on tA.FieldName = 'BID' 
        AND tA.newValue = CONVERT(VARCHAR, tN_B.ID)
       LEFT JOIN 
       C tO_C 
         on tA.FieldName = 'CID' 
        AND tA.oldValue = tO_C.Name
       LEFT JOIN 
       C tN_C 
         on tA.FieldName = 'CID' 
        AND tA.newValue = tN_C.Name
 WHERE U.Fullname = @SearchTerm
ORDER BY tA.ChangeDate

При выполнении кода я получаю сообщение об ошибке, вставленное в заголовок после добавления двух объединений для таблицы C. Я думаю, что это может быть связано с тем фактом, что я использую SQL Server 2008 и восстановил копию этого ДБ на моей машине, которая 2005 года.

Ответы [ 23 ]

1 голос
/ 27 ноября 2018

Чтобы решить эту проблему в запросе без изменения какой-либо базы данных, вы можете привести выражения к другой стороне знака "=" с помощью

COLLATE SQL_Latin1_General_CP1_CI_AS

как предложено здесь .

1 голос
/ 09 февраля 2015

ALTER DATABASE test2 - введите имя вашей базы данных здесь COLLATE Latin1_General_CS_AS - заменить на любое нужное сопоставление

0 голосов
/ 22 августа 2018

В вашей базе данных могут отсутствовать какие-либо проблемы с сопоставлением, но если вы восстановили копию своей базы данных из резервной копии на сервере с сопоставлением, отличным от исходного, и ваш код создает временные таблицы, эти временные таблицы будут наследуйте параметры сортировки от сервера, и могут возникнуть конфликты с вашей базой данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...