생활
MSSQL 에서 공백으로 끝나는 값 저장시 PRIMARY KEY 중복오류가 ?
MSSQL SERVER 2017 DATABASE 에 관한 질문입니다.
테이블에 PRIMARY KEY 또는 UNIQUE 로 설정된 컬럼에 공백으로 끝나는 값과 공백없이 끝나는 동일한 값 2건을 입력하면 중복에러가 발생합니다.
예. CREATE TABLE TEST (
PKCOL VARCHAR(20) NOT NULL PRIMARY KEY
);
INSERT INTO TEST VALUES ('AB'); --성공
INSERT INTO TEST VALUES (' AB'); -- 성공
INSERT INTO TEST VALUES ('AB '); -- 실패
INSERT INTO TEST VALUES (' AB '); --실패
즉 ,
INDEX 없이는 공백그대로 저장이 잘 되는데,
UNIQUE INDEX 를 만든상태에선,
오른쪽 공백을 자동으로 잘라내면서 인덱스 데이터를 구성하는 문제로 중복오류가 발생하는 현상인것 같습니다.
공백(BLANK)은 문자인데 왜 강제로 잘라(RIGHT TRIM)내서 인덱를 구성하는지 이해 할 수 없네요.
오라클에선 정상적으로 처리되는데.
이를 해결할 수 있는 방법을 질문합니다.
감사합니다.