2012-08-13 2 views
3

테이블 변수 열 정의에 SQL_Latin1_General_CP1_CS_AS를 조합 할 수 있습니까?대소 문자를 구분하는 열이있는 T-SQL 테이블 변수 - 한 부씩 정렬 SQL_Latin1_General_CP1_CS_AS

원본 원본 테이블에 대/소문자를 구분하는 정보가 있기 때문에 이유는 있지만 테이블 변수에 삽입하면 기본 키에 문제가 있습니다 (클러스터 됨) - 중복 값이 ​​감지되었습니다 - '모두'및 '모두'와 같이

그건 나도 다음 문으로 테이블 변수 열 대소 문자를 구분 할 수있는 방법을 찾기 위해 노력하고 있어요 이유는 다음과 같습니다

SELECT SERVERPROPERTY ('Collation') 

저를 준다 : "SQL_Latin1_General_CP1_CI_AS 데이터"

답변

6

예 가능합니다. 테이블 변수를 선언 할 때 각 열에 대해 데이터 정렬을 지정할 수 있습니다.

declare @T table 
(
    Col varchar(20) collate SQL_Latin1_General_CP1_CS_AS 
) 
2

예. 그것은 다음과 같은 스크립트를 작성 이분 같은 것을했다 :

첫 번째 insert 문에 다음 두 행, 오류를 저장
declare @T table (
    ID int not null, 
    Val1 varchar(10) collate SQL_Latin1_General_CP1_CS_AS not null primary key 
) 

insert into @T(ID,Val1) values (1,'All'),(2,'ALL') 

insert into @T(ID,Val1) values (3,'All') 

.