Ошибка SQL с «Turkish_CI_AS» и «SQL_Latin1_General_CP1_CI_AS» - PullRequest
0 голосов
/ 28 января 2011

У меня есть SQL-запрос, подобный этому:

SELECT E.HESAP, B.TEKLIF_NO1 + '/' + B.TEKLIF_NO2 AS 'TEKLIF',
    E.MUSTERI,CONVERT(VARCHAR(10),B.ISL_TAR,103) AS 'TARIH', SUM(
    ISNULL(CAST(B.ODENEN_ANAPARA AS FLOAT),0)+ISNULL(CAST(B.FAIZ AS FLOAT),0)+
    ISNULL(CAST(B.BSMV AS FLOAT),0)+ISNULL(CAST(B.GECIKME_FAIZ AS FLOAT),0)+
    ISNULL(CAST(B.GECIKME_BSMV AS FLOAT),0)) AS 'YATAN', 
    (CASE WHEN C.DOVIZ_KOD = 21 THEN 'EUR' WHEN C.DOVIZ_KOD = 2 THEN 'USD' WHEN C.DOVIZ_KOD = 1 THEN 'TL' END) AS 'KUR',
    E.AVUKAT, CONVERT(VARCHAR(10),A.ICRA_TAR,103) AS 'İCRA TARİHİ', CONVERT(VARCHAR(10),A.HACIZ_TAR,103) AS 'HACİZ TARİHİ'
    FROM TAKIP A, YAZ..MARDATA.BIR_TAHSIL B, 
    YAZ..MARDATA.S_TEKLIF C,P_TAKIP_SR D, AVUKAT E
    WHERE B.TEKLIF_NO1 = C.TEKLIF_NO1
    AND B.TEKLIF_NO2 = C.TEKLIF_NO2
    AND A.T_HESAP_NO = C.HESAP_NO
    AND C.HESAP_NO = B.HESAP_NO
    AND B.HESAP_NO = E.HESAP
    AND A.T_SRM = D.T_SR_ID
    AND A.T_STATU = 2
    AND A.T_SRM <> 6

Но когда я запускаю его, я получаю сообщение об ошибке:

Ошибка сервера в «/» приложении.
Не удалось разрешить конфликт сопоставления между Turkish_CI_AS и «SQL_Latin1_General_CP1_CI_AS» в равно операции.
Описание: необработанное исключение произошло во время выполнение текущего веб-запроса.
Пожалуйста, просмотрите трассировку стека для более информация об ошибке и где он возник в коде.

Сведения об исключении: System.Data.SqlClient.SqlException: Не удается разрешить конфликт сопоставления между "Turkish_CI_AS" и «SQL_Latin1_General_CP1_CI_AS» в равно операции.

Ошибка источника: Строка 77: myConnection.Open (); Строка 78: Строка 79: SqlDataReader dr = myCommand.ExecuteReader (System.Data.CommandBehavior.CloseConnection); Строка 80: Строка 81: // показать данные

Я не могу найти ошибку. Где это?

Ответы [ 2 ]

4 голосов
/ 28 января 2011

Литерал '/' примет сопоставление базы данных по умолчанию.

Попробуйте

... B.TEKLIF_NO1 + '/' COLLATE Turkish_CI_AS + B.TEKLIF_NO2 AS 'TEKLIF' ...
4 голосов
/ 28 января 2011

Посмотрите на одно из ваших предложений AND, где тип данных имеет тип VARCHAR.Вам нужно будет указать параметры сортировки с обеих сторон, чтобы убедиться, что вы не получите эту ошибку.

EG:

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