MSSQL 에서 컬럼은 대소 문자를 구분하지 않기 때문에 대소문자 구분할수 있게 속성을 추가 해야 한다.
SEFSFF 와 sefsff 는 같은 키로 인식
Create
|
1 2 3 4 5 6 7 8 |
CREATE TABLE VTM_ShortUrl ( shortUrl VARCHAR(20) COLLATE Latin1_General_CS_AS PRIMARY KEY, longUrl VARCHAR(2000), createDate DATETIME DEFAULT GETDATE() ) |
PK 이면 변경시 키속성을 삭제하고 다시 설정 필요
|
1 2 3 4 5 6 7 8 9 10 11 12 |
SQL -- 1. PK 삭제 (제약 조건 이름을 확인해서 입력하세요) ALTER TABLE ShortUrl DROP CONSTRAINT PK_ShortUrl; -- 2. 컬럼 설정 변경 (대소문자 구분 설정) ALTER TABLE ShortUrl ALTER COLUMN shortUrl VARCHAR(100) COLLATE Korean_100_CS_AS NOT NULL; -- 3. PK 재설정 ALTER TABLE ShortUrl ADD CONSTRAINT PK_ShortUrl PRIMARY KEY (shortUrl); |
Select
|
1 2 3 |
WHERE shortUrl COLLATE Latin1_General_CS_AS = @shortUrl |
저장프로시저
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
ALTER PROCEDURE [dbo].[usp_ShortUrl_Read] ( @shortUrl varchar(100) ) AS BEGIN SET NOCOUNT ON; SELECT longUrl FROM ShortUrl WITH (NOLOCK) WHERE shortUrl COLLATE Latin1_General_CS_AS = @shortUrl END |
