서버 데이터 정렬 설정 또는 변경

적용 대상:SQL ServerAzure SQL Managed Instance

서버 데이터 정렬은 SQL Server 인스턴스에 설치된 모든 시스템 데이터베이스와 새로 만든 사용자 데이터베이스의 기본 데이터 정렬로 적용됩니다.

서버 수준 데이터 정렬은 다음에 영향을 줄 수 있으므로 신중하게 고려해야 합니다.

  • =, JOIN, ORDER BY 및 텍스트 데이터를 비교하는 기타 연산자의 정렬 및 비교 규칙입니다.
  • 시스템 보기, 시스템 함수 CHAR(예: 임시 테이블)의 개체에서 VARCHAR, NCHAR, NVARCHARtempdb 열의 데이터 정렬입니다.
  • 변수, 커서 및 GOTO 레이블의 이름입니다. 예를 들어, @pi@PI 변수는 서버 수준 데이터 정렬이 대/소문자를 구분하는 경우 다른 변수로 간주되고, 서버 수준 데이터 정렬이 대/소문자를 구분하지 않는 경우 동일한 변수로 간주됩니다.

SQL Server에서 서버 데이터 정렬

서버 데이터 정렬은 SQL Server 설치 중에 지정됩니다. 기본 서버 수준 데이터 정렬은 운영 체제의 로컬을 기반으로 합니다.

예를 들어 미국 영어(en-us)를 사용하는 시스템의 기본 데이터 정렬은 SQL_Latin1_General_CP1_CI_AS입니다. 기본 데이터 정렬 매핑에 대한 OS 로컬 목록을 비롯한 자세한 내용은 데이터 정렬 및 유니코드 지원의 "서버 수준 데이터 정렬"을 참조하세요.

참고 항목

SQL Server Express LocalDB에 대한 서버 수준 데이터 정렬은 SQL_Latin1_General_CP1_CI_AS이며, 설치 중 또는 설치 후에 변경할 수 없습니다.

SQL Server에서 서버 데이터 정렬 변경

SQL Server 인스턴스의 기본 데이터 정렬을 변경하는 작업은 복잡한 작업입니다.

참고 항목

SQL Server 인스턴스의 기본 데이터 정렬을 변경하는 대신 COLLATECREATE DATABASE 문의 ALTER DATABASE 클러스터를 통해 만든 각 새 데이터베이스의 기본 데이터 정렬을 지정할 수 있습니다. 자세한 내용은 데이터베이스 데이터 정렬 설정 또는 변경을 참조하세요.

인스턴스 데이터 정렬을 변경하려면 다음 단계를 수행해야 합니다.

  • 사용자 데이터베이스 및 해당 데이터베이스의 모든 개체를 다시 만드는 데 필요한 모든 정보 또는 스크립트가 있는지 확인합니다.

  • bcp 유틸리티와 같은 도구를 사용하여 모든 데이터를 내보냅니다. 자세한 내용은 데이터 대량 가져오기 및 내보내기(SQL Server)를 참조하세요.

  • 모든 사용자 데이터베이스를 삭제합니다.

  • setup 명령의 SQLCOLLATION 속성에서 새 데이터 정렬을 지정하여 master 데이터베이스를 다시 빌드합니다. 예시:

    Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=InstanceName
    /SQLSYSADMINACCOUNTS=accounts [ /SAPWD= StrongPassword ]
    /SQLCOLLATION=CollationName  
    

    자세한 내용은 시스템 데이터베이스 다시 작성을 참조하세요.

  • 모든 데이터베이스와 그 안의 모든 개체를 만듭니다.

  • 모든 데이터를 가져옵니다.

Azure SQL Managed Instance에서 서버 데이터 정렬 설정

Azure SQL Managed Instance의 서버 수준 데이터 정렬은 인스턴스가 생성될 때 지정될 수 있고 나중에 변경될 수 없습니다. 인스턴스를 만드는 동안 Azure Portal 또는 PowerShell 및 Resource Manager 템플릿을 통해 서버 수준 데이터 정렬을 설정할 수 있습니다. 기본 서버 수준 데이터 정렬은 SQL_Latin1_General_CP1_CI_AS입니다.

SQL Server에서 Azure SQL Managed Instance로 데이터베이스를 마이그레이션하는 경우 SERVERPROPERTY(N'Collation') 함수를 사용하여 원본 SQL Server의 서버 데이터 정렬을 검사하고 SQL Server의 데이터 정렬과 일치하는 Managed Instance를 만듭니다. 일치하지 않는 서버 수준 데이터 정렬을 사용하여 SQL Server에서 SQL Managed Instance로 데이터베이스를 마이그레이션하면 쿼리에서 몇 가지 예기치 않은 오류가 발생할 수 있습니다. 기존 Managed Instance에서 서버 수준 데이터 정렬을 변경할 수 없습니다.

Azure SQL Database의 데이터 정렬

Azure SQL Database에서 논리 서버 데이터 정렬을 변경하거나 설정할 수는 없지만 데이터와 카탈로그 모두에 대해 각 데이터베이스의 데이터 정렬을 구성할 수 있습니다. 카탈로그 데이터 정렬은 개체 식별자와 같은 시스템 메타데이터에 대한 데이터 정렬을 결정합니다. Azure Portal에서 데이터베이스를 만들거나 CREATE DATABASE를 사용하는 T-SQL에서 또는 New-AzSqlDatabase를 사용하는 PowerShell에서 두 데이터 정렬을 독립적으로 지정할 수 있습니다.