분산 쿼리의 데이터 정렬
SQL Server는 여러 데이터 정렬을 지원합니다. 각 열마다 데이터 정렬이 다를 수 있으며 각 문자 값에 연결된 데이터 정렬 속성이 있습니다. SQL Server는 원격 데이터 원본에서 제공된 문자 데이터의 데이터 정렬 속성을 해석하고 적절하게 처리합니다.
SQL Server는 원격 데이터의 데이터 정렬을 유니코드 및 비유니코드 문자 데이터에 대한 비교 및 정렬 작업에 사용합니다. 원격 문자 데이터에 대한 데이터 정렬 정보는 데이터 원본이 SQL Server의 인스턴스에 대응하는지의 여부에 따라 달라집니다.
Microsoft SQL Server Native Client OLE DB 공급자는 공급자가 반환하는 각 열에 대한 데이터 정렬을 자동으로 보고합니다.
SQL Server에 없지만 데이터 정렬이 SQL Server에서 지원하는 데이터 정렬 중 하나와 동일한 것으로 알려진 원격 테이블의 경우 관리자가 OLE DB 데이터 원본의 기본 데이터 정렬을 연결된 서버 정의의 일부로 지정할 수 있습니다. 그러면 SQL Server는 기본 데이터 정렬을 연결된 서버에서 반환된 모든 열의 데이터 정렬로 사용할 수 있습니다.
SQL Server가 원격 문자 열의 데이터 정렬을 결정한 후에 SQL Server는 로컬 열에 대해서와 마찬가지로 원격 테이블 열에 대한 변환, 비교, 연산에 대해 동일한 규칙을 따릅니다. SQL Server가 데이터 정렬에 적용하는 규칙 및 SQL Server에서 지원하는 데이터 정렬 이름에 대한 자세한 내용은 데이터 정렬 작업을 참조하십시오.
기본 원격 데이터베이스의 데이터 정렬이 현재 로컬 데이터베이스의 데이터 정렬과 다르면 원격 문자열이 유니코드로 처리됩니다. 문자열이 모든 원격 서버에서 일률적으로 처리되도록 하려면 다음을 수행하십시오.
유니코드 유형 N**'string'**을 사용하여 분산 쿼리에 문자열 리터럴을 지정합니다.
기본 원격 데이터베이스에 의존하지 않고 명시적 대상 데이터베이스가 있는 연결된 서버를 정의합니다. 이 데이터베이스에는 다른 데이터 정렬이 있을 수 있습니다.
연결된 서버 옵션 정의
sp_serveroption을 사용하여 정의된 다음의 연결된 서버 옵션은 SQL Server가 연결된 서버의 데이터 정렬을 사용할지 여부와 사용 방법을 제어합니다.
use remote collation 옵션은 원격 열 또는 로컬 서버의 데이터 정렬을 사용할지 여부를 지정합니다. true로 설정하면 SQL Server 데이터 원본에 원격 열의 데이터 정렬이 사용되고 SQL Server가 아닌 데이터 원본에는 collation name에 지정된 데이터 정렬이 사용됩니다. false로 설정된 경우 분산 쿼리가 항상 로컬 서버 인스턴스의 기본 데이터 정렬을 사용하며 collation name 및 원격 열의 데이터 정렬은 무시됩니다.
collation name 옵션은 use remote collation이 true이고 데이터 원본이 SQL Server 데이터 원본이 아닌 경우에 원격 데이터 원본에서 사용하는 데이터 정렬의 이름을 지정합니다. 이름은 반드시 SQL Server에서 지원하는 데이터 정렬 중 하나여야 합니다. SQL Server 이외의 OLE DB 데이터 원본에 액세스하지만 데이터 정렬이 SQL Server 데이터 정렬 중 하나와 일치할 경우 이 옵션을 사용합니다. SQL Server 데이터 원본은 해당 열 데이터 정렬을 보고하고 SQL Server 데이터 원본을 참조하는 연결된 서버에 대해 데이터 정렬 이름은 무시됩니다.
[!참고]
원격 데이터 정렬을 사용할 수 있도록 설정하는 유일한 방법은 연결된 서버 옵션을 사용하는 것입니다. 따라서 OPENROWSET 및 OPENDATASOURCE에서 제공한 임의 이름을 사용하도록 구성된 쿼리에서는 원격 문자 데이터의 데이터 정렬 정보를 사용할 수 없습니다. 또한 SQL Server 2000 이상으로 업그레이드된 SQL Server 버전 7.0에서 연결된 서버는 모두 use remote collation=false로 설정됩니다.
옵션 설정 요약
다음 표에서는 use remote collation이 true 또는 on으로 설정되어 있는 경우 SQL Server에서 각 열에 사용되는 데이터 정렬을 결정하는 방법을 요약합니다.
연결된 서버 유형 |
데이터 정렬 이름이 설정되어 있지 않은 경우 |
데이터 정렬 이름이 설정되어 있는 경우(CollX) |
---|---|---|
SQL Server |
원격 열의 실제 데이터 정렬 |
원격 열의 실제 데이터 정렬 |
기타 |
SQL Server 로컬 인스턴스의 기본 데이터 정렬 |
CollX |
다음 표에서는 use remote collation이 false 또는 off으로 설정되어 있는 경우 SQL Server에서 각 열에 사용되는 데이터 정렬을 결정하는 방법을 요약합니다.
연결된 서버 유형 |
데이터 정렬 이름이 설정되어 있지 않은 경우 |
데이터 정렬 이름이 설정되어 있는 경우(CollX) |
---|---|---|
SQL Server |
SQL Server 로컬 인스턴스의 기본 데이터 정렬 |
SQL Server 로컬 인스턴스의 기본 데이터 정렬 |
기타 |
SQL Server 로컬 인스턴스의 기본 데이터 정렬 |
SQL Server 로컬 인스턴스의 기본 데이터 정렬 |