2014-12-29 9 views
0

, 내가 msdn에서이 정보를 검색 할 추가 정보 사항에 따라쿼리이 <a href="http://www.ntu.edu.sg/home/ehchua/programming/sql/MySQL_HowTo.html" rel="nofollow">link</a> 당으로

Case-sensitivity in string comparison depends on the collating sequence used 

의 의미를 이해하고 싶은, 내가 정렬의 의미를 이해할 수 없었다

데이터 정렬은 데이터 세트의 각 문자를 나타내는 비트 패턴을 지정합니다. 데이터 정렬은 또한 데이터 정렬 및 비교 규칙을 결정합니다. SQL Server는 하나의 데이터베이스에 다른 데이터 정렬이있는 개체를 저장하는 것을 지원합니다. 비 유니 코드 열의 경우 데이터 정렬 설정은 데이터의 코드 페이지와 표시 할 수있는 문자를 지정합니다. 유니 코드가 아닌 열 사이를 이동 한 데이터는 소스 코드 페이지에서 대상 코드 페이지로 변환해야합니다.

예를 들어 데이터베이스의 조합 순서의 의미/의미를 이해할 수 있습니까?

참고 : 현재 데이터베이스 인트로 과정의 일부입니다.

답변

1

데이터베이스를 만드는 동안 데이터를 다른 언어로 저장해야하는 필요성을 느끼고 다른 언어가 다른 정렬 순서로 다른 문자 수를 가지므로 그에 따라 정렬 할 수있는 방법이 필요할 수 있습니다. . 데이터 정렬은 문자열 값의 정렬 방식을 제어합니다. TSQL에서 여기에 설명 된대로 부 단위를 사용하여 정의 할 수 있습니다. http://msdn.microsoft.com/en-us/library/ms184391.aspx

지원되는 다른 구성이 무엇인지 알아 보려면 설명서를 참조하십시오. 데이터베이스를 만드는 동안 데이터 정렬을 정의하지 않으면 현재 SQL Server 인스턴스에서 기본 데이터 정렬을 선택합니다. 데이터베이스 테이블이나 열에서 데이터 정렬을 적용 할 수 있으며 데이터 정렬 순서에 적용 할 데이터를 선택하는 동안 데이터 정렬을 사용할 수 있습니다.

다음은 정렬이 다른 경우 더 What does 'COLLATE SQL_Latin1_General_CP1_CI_AS' do?

+0

이, 왜 문자열 값을 비교 영향을 미치는가 이해하는 데 도움이 될 것입니다 관련 질문은? 나는이 점을 이해하지 못했다. 예를 들면 다음과 같습니다.'SELECT * FROM MyTable1 M1 INNER JOIN MyTable2 M2 ON M1.Comments = M2.Comments' 여기'MyTable1'에는 열'Comments VARCHAR (100) COLLATE Latin1_General_CI _AS' 및'MyTable2'에는 열'Comments VARCHAR (100) COLLATE SQL_Lati n1_General_CP1_CI_AS'. 이 쿼리로 인해 오류가 발생하므로 아직 명확하지 않습니다. 왜 데이터 정렬이 다른 경우'='가 발생할 수 없습니까? 제발 도와주세요 !!! – overexchange

+0

다른 데이터 정렬은 데이터를 다른 방식으로 저장하며 데이터 정렬을 동일하게 변환하지 않으면 비교할 수 없습니다. 다른 데이터 정렬을 사용하는 select 문을 사용할 수 있으며 데이터가 다른 형식으로 표시됩니다. 세부 답변은 http://www.olcot.co.uk/sql-blogs/revised-difference-between-collation-sql_latin1_general_cp1_ci_as-and-latin1_general_ci_as 여기에 있습니다. – Moeen