2013-04-13 2 views
0

문자열 열에 정의 된 기본 키가있는 테이블과 동일한 값이지만 대소 문자가 다른 여러 행을 만들려고합니다.대/소문자 구분 카탈로그 만들기

기본적으로 SQL Server에서는 허용하지 않습니다. SQL Server에 허용되는 방법이 있습니까?

답변

2

'Database Collation'매개 변수를 변경하여 데이터베이스 대소 문자 구분을 제어 할 수 있습니다.

디폴트 조합은 SQL_Latin1_General_CP1_CI_AS 데이터 (CI => 대소 문자 구분) SQL_Latin1_General_CP1_CS_AS 변경하여

(민감 CS => 케이스)가 다른 경우와 동일한 기본 키를 갖는 2 개 행을 활성화 할 수있다.

+0

또한, 당신은 열뿐만 아니라 DB 수준에서 데이터 정렬을 설정할 수있는 민감한 (Finnish_Swedish_CS_AS) 경우로 선택합니다. – StrayCatDBA

0

대소 문자를 구분하도록 테이블에서 열의 COLLATION을 지정하십시오. 데이터베이스가 사용하는 데이터 정렬을 먼저 파악하십시오.

SELECT DATABASEPROPERTYEX(DB_NAME(), 'Collation') AS CollationUsedBySQLServerDatabase 
-- Mine was Finnish_Swedish_CI_AS 

는 테이블에 동일한 하나를 선택하지만

create table Users 
(
    UserName varchar(5000) COLLATE Finnish_Swedish_CS_AS PRIMARY KEY 
) 

insert Users(UserName) 
Values ('Peter'), ('PETER') 

select * from Users 
관련 문제