복붙노트

[SQL] SQL 서버 오류 "값의 데이터 정렬은 데이터 정렬 충돌로 인해 해결되지 않은 때문에 암시 적 변환."

SQL

SQL 서버 오류 "값의 데이터 정렬은 데이터 정렬 충돌로 인해 해결되지 않은 때문에 암시 적 변환."

내가 저장 프로 시저를 개발하는 동안이 오류가

문은 다음과 같다

Select City COLLATE DATABASE_DEFAULT AS Place, State, Country FROM DEPT1
UNION ALL
Select '' AS Place, 'Arizona' As State, Country FROM DEPT2

하지만 만약의 경우도 같은 오류를 줄이에게 그것을 할

 Select City COLLATE DATABASE_DEFAULT AS Place, State, Country FROM DEPT1
 UNION ALL
 Select '' COLLATE DATABASE_DEFAULT AS Place, 'Arizona' As State, Country FROM DEPT2

사실이 코드가 다른 어떤 사람에 의해 기록되고 그가 COLLATE DATABASE_DEFAULT을 추가 한 이유는 단지 코드를 편집하고, 모르지만 내가 제거하면이 같은 오류를 제공

해결법

  1. ==============================

    1.당신은 가능성이 가장 높은 두 곳에서 COLLATE 필요 했어.

    당신은 가능성이 가장 높은 두 곳에서 COLLATE 필요 했어.

    Select City COLLATE DATABASE_DEFAULT AS Place, State, Country FROM DEPT1
    UNION ALL
    Select '' COLLATE DATABASE_DEFAULT AS Place, 'Arizona' As State, Country FROM DEPT2
    

    편집 : 당신이 한 장소에서 그것을 얻을 경우 모든 문자열을해야 할 수도 있습니다

    Select
        City COLLATE DATABASE_DEFAULT AS Place,
        State COLLATE DATABASE_DEFAULT AS State,
        Country COLLATE DATABASE_DEFAULT AS Country
    FROM DEPT1
    UNION ALL
    Select
        '' COLLATE DATABASE_DEFAULT,
        'Arizona' COLLATE DATABASE_DEFAULT ,
        Country COLLATE DATABASE_DEFAULT
    FROM DEPT2
    

    Aaditi :

    당신의 열 정렬이 데이터베이스의 데이터 정렬 아마 다른 있기 때문에 발생합니다. 그래서 "시는"하나 개의 정렬을 사용하지만, 문자열 상수는 다른 있습니다.

  2. ==============================

    2.ALTER TABLE DEPT1 및 DEPT2 그래서 테이블의 결과 정의는 COLLATE를 포함하지 않는 것이

    ALTER TABLE DEPT1 및 DEPT2 그래서 테이블의 결과 정의는 COLLATE를 포함하지 않는 것이

  3. from https://stackoverflow.com/questions/3861782/sql-server-error-implicit-conversion-of-because-the-collation-of-the-value-is-u by cc-by-sa and MIT license