2010-07-21 4 views

답변

47

기본적으로 설치를 다시 실행하여 master 데이터베이스를 새 데이터 정렬로 다시 작성해야합니다. 다른 방법으로 전체 서버의 데이터 정렬을 변경할 수는 없습니다.

참조 :

업데이트 : 데이터베이스의 데이터 정렬을 변경하려는 경우, 당신이 얻을 수있는 T-SQL 스 니펫을 사용하여 현재 데이터 정렬 :

SELECT name, collation_name 
FROM sys.databases 
WHERE name = 'test2' -- put your database name here 
당신은 대소 문자를 구분하려면, 그 자리에 _CS를 사용 -

Latin1_General_CI_AS 

_CI 수단 "대소 문자 구분":

Latin1_General_CS_AS 

그래서 T- 0

이는 같은 값 뭔가를 얻을 것입니다 SQL 명령은 다음과 같습니다

ALTER DATABASE test2 -- put your database name here 
    COLLATE Latin1_General_CS_AS -- replace with whatever collation you need 

당신은 사용하여 서버에서 사용 가능한 모든 데이터 정렬의 목록을 얻을 수 있습니다 :

SELECT * FROM ::fn_helpcollations() 

당신은 서버의 현재 데이터 정렬 사용 볼 수 있습니다

SELECT SERVERPROPERTY ('Collation') 
+0

정보를 제공해 주셔서 감사합니다. 이제 적어도 대/소문자를 구분하지 않도록 데이터베이스의 데이터 정렬을 변경하려고합니다. 이 'ALTER DATABASE DEV_DB COLLATE [대소 문자를 구분하지 않는 키]가 동일한 것으로 나타났습니다. 그러나 대소 문자를 구분하는 데 사용할 값에 대해서는 확신 할 수 없습니다. 그 어떤 도움도 감지 할 수 있습니다! – JPReddy

2

당신은 그렇게 할 수 있지만 변경 사항이 데이터베이스에 삽입되는 새로운 데이터에 영향을 미칠 것입니다. 장기적으로 위에서 제안한대로 따라하십시오.

저장 프로 시저 또는 함수의 매개 변수, 별칭 데이터 형식 및 데이터베이스의 기본 데이터 정렬에 변수가 할당되는 등의 특정 트릭이 있습니다. 별칭 유형의 데이터 정렬을 변경하려면 별칭을 삭제하고 다시 만들어야합니다.

COLLATE 절을 사용하여 리터럴 문자열의 기본 데이터 정렬을 재정의 할 수 있습니다. 데이터 정렬을 지정하지 않으면 리터럴에 데이터베이스 기본 데이터 정렬이 할당됩니다. DATABASEPROPERTYEX를 사용하여 데이터베이스의 현재 데이터 정렬을 찾을 수 있습니다.

SELECT 문의 ORDER BY 절에 데이터 정렬을 지정하여 서버, 데이터베이스 또는 열 데이터 정렬을 재정의 할 수 있습니다.

관련 문제