COLLATE(Transact-SQL)

업데이트: 2005년 12월 5일

데이터베이스 정의 또는 열 정의에 적용하여 데이터 정렬을 정의하거나 문자열 식에 적용하여 데이터 정렬 형변환을 적용하기 위한 절입니다.

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

COLLATE { <collation_name> | database_default }
<collation_name> :: = 
     { Windows_collation_name } | { SQL_collation_name }

인수

  • collation_name
    식, 열 정의 또는 데이터베이스 정의에 적용할 데이터 정렬 이름입니다. collation_name에는 지정된 Windows_collation_name 또는 SQL_collation_name만 사용할 수 있습니다. collation_name은 리터럴 값이어야 합니다. 변수나 식으로 collation_name을 나타낼 수 없습니다.

    Windows_collation_nameWindows 데이터 정렬 이름의 데이터 정렬 이름입니다.

    SQL_collation_nameSQL 데이터 정렬 이름의 데이터 정렬 이름입니다.

  • database_default
    COLLATE 절이 현재 데이터베이스의 데이터 정렬을 상속하도록 합니다.

주의

COLLATE 절은 여러 수준에서 지정할 수 있습니다. 지정 가능한 수준은 다음과 같습니다.

  1. 데이터베이스 만들기 또는 변경
    CREATE DATABASE 또는 ALTER DATABASE 문의 COLLATE 절을 사용하여 데이터베이스의 기본 데이터 정렬을 지정할 수 있습니다. 또한 SQL Server Management Studio를 사용하여 데이터베이스를 만들 때 데이터 정렬을 지정할 수 있습니다. 데이터 정렬을 지정하지 않은 경우에는 SQL Server 인스턴스의 기본 데이터 정렬이 데이터베이스에 할당됩니다.
  2. 테이블 열 만들기 또는 변경
    CREATE TABLE 또는 ALTER TABLE 문의 COLLATE 절을 사용하여 각 문자열 열에 대한 데이터 정렬을 지정할 수 있습니다. 또한 SQL Server Management Studio를 사용하여 테이블을 만들 때 데이터 정렬을 지정할 수 있습니다. 데이터 정렬을 지정하지 않은 경우에는 데이터베이스의 기본 데이터 정렬이 열에 할당됩니다.
    또한 COLLATE 절에서 database_default 옵션을 사용하여 임시 테이블의 열이 연결에 대해 tempdb 대신 현재 사용자 데이터베이스의 기본 데이터 정렬을 사용하도록 지정할 수 있습니다.
  3. 식의 데이터 정렬 형변환
    COLLATE 절을 사용하여 문자 식을 특정 데이터 정렬로 형변환할 수 있습니다. 문자 리터럴과 변수에는 현재 데이터베이스의 기본 데이터 정렬이 할당됩니다. 열 참조에는 열의 기본 데이터 정렬이 할당됩니다. 식의 데이터 정렬에 대한 내용은 선행 정렬(Transact-SQL)을 참조하십시오.

식별자의 데이터 정렬은 식별자가 정의된 수준에 따라 달라집니다. 로그인과 데이터베이스 이름 등 인스턴스 수준 개체의 식별자에는 인스턴스의 기본 데이터 정렬이 할당됩니다. 테이블, 뷰, 열 이름 등 데이터베이스에 있는 개체의 식별자에는 데이터베이스의 기본 데이터 정렬이 할당됩니다. 예를 들어 대/소문자만 다르고 동일한 이름인 두 테이블은 데이터 정렬이 대/소문자를 구분하는 데이터베이스에서는 만들 수 있지만 대/소문자를 구분하지 않는 데이터베이스에서는 만들 수 없습니다. 자세한 내용은 식별자를 참조하십시오.

변수, GOTO 레이블, 임시 저장 프로시저 및 임시 테이블은 연결 컨텍스트를 한 데이터베이스와 연결한 경우에 만들 수 있으며 컨텍스트를 다른 데이터베이스로 전환한 경우에 참조할 수 있습니다. 변수, GOTO 레이블, 임시 저장 프로시저 및 임시 테이블의 식별자는 인스턴스의 기본 데이터 정렬에 있습니다.

COLLATE 절은 char, varchar, text, nchar, nvarcharntext 데이터 형식에 대해서만 적용할 수 있습니다.

데이터 정렬은 일반적으로 데이터 정렬 이름으로 식별합니다. 설치할 때 Windows 데이터 정렬에 대해 데이터 정렬 이름을 지정하지 않는 경우는 예외입니다. 대신, 데이터 정렬 지정자를 지정한 다음 확인란을 선택하여 대소문자와 악센트를 구분하거나 구분하지 않는 이진 정렬 또는 사전 정렬을 지정합니다.

시스템 함수인 fn_helpcollations를 실행하여 Windows 데이터 정렬과 SQL 데이터 정렬에 대해 유효한 모든 데이터 정렬 이름의 목록을 검색할 수 있습니다.

SELECT *
FROM fn_helpcollations()

SQL Server는 해당 운영 체제에서 지원되는 코드 페이지만 지원할 수 있습니다. 데이터 정렬을 기반으로 하는 작업을 수행할 때마다 참조된 개체가 사용하는 SQL Server 데이터 정렬은 시스템에서 실행 중인 운영 체제가 지원하는 코드 페이지를 사용해야 합니다. 여기에는 다음과 같은 작업이 포함됩니다.

  • 데이터베이스를 만들거나 변경할 때 데이터베이스에 대한 기본 데이터 정렬 지정
  • 테이블을 만들거나 변경할 때 열에 대한 데이터 정렬 지정
  • 데이터베이스를 복원하거나 연결할 때 데이터베이스의 기본 데이터 정렬과 데이터베이스 내의 모든 char, varchartext 열 또는 매개 변수의 데이터 정렬은 반드시 운영 체제에서 지원되는 것이어야 합니다.
    charvarchar 데이터 형식에 대해서는 코드 페이지 변환이 지원되지만 text 데이터 형식에 대해서는 지원되지 않습니다. 코드 페이지 변환 중 데이터가 손실되어도 보고되지 않습니다.

지정된 데이터 정렬 또는 참조된 개체가 사용하는 데이터 정렬에서 Windows가 지원하지 않는 코드 페이지를 사용하는 경우에는 SQL Server가 오류를 표시합니다.

참고 항목

참조

ALTER TABLE(Transact-SQL)
선행 정렬(Transact-SQL)
상수(Transact-SQL)
CREATE DATABASE(Transact-SQL)
CREATE TABLE(Transact-SQL)
DECLARE @local\_variable(Transact-SQL)
table(Transact-SQL)

관련 자료

데이터 정렬 작업
유니코드 데이터 작업

도움말 및 정보

SQL Server 2005 지원 받기

변경 내역

릴리스 내역

2005년 12월 5일

새로운 내용
  • collation_name 인수 설명을 추가했습니다. collation_name은 리터럴 값이어야 합니다. 변수나 식으로 collation_name을 나타낼 수 없습니다.