2011-09-22 6 views
0

UniqueIdentifier 인 열로 데이터를 필터링하는 SQL이 있다고 가정합니다.SQL Server에서 UniqueIdentifier에 대한 유효성 검사 규칙이 있습니까?

Select * from core.Pages WHERE PageId = '1DC4E71C-4E68-489D-A837-2C9BA8DCC1DC' 빠른 테스트/정신의 목적

(이 GUID는 NEWID() 함수에 의해 생성되었다) 나는 내가 'X'로 문자 중 하나를 교체하고 실행 줄 알았는데 확인 다시 쿼리하십시오. 오류 메시지가 표시되면 내 놀람을 상상해보십시오.

uniqueidentifier로 변환 할 때 변환하지 못했습니다.

GUID 또는 UniqueIdentifier가 해당 범위에서 무제한이라고 생각했습니다. 모든 영숫자 문자는 다른 문자로 대체 될 수 있지만 SQL Server에는 GUID를 구성하는 요소에 대한 자체 아이디어가있는 것으로 보입니다. 'X'문자를 사용하면이 오류가 발생합니다. 다른 문자는 RDBMS를 화나게하지 않습니다.

누구든지 설명 할 수 있습니까?

+2

나는 GUID가 0,1,2,3,4,5,6,7,8,9, A, B, C, D, E 및 F 중 임의의 16 진수 문자라고 생각합니다. –

+0

덧붙여 말하면 newID) newsequentialId()를 사용하십시오. http://www.codeproject.com/KB/database/AgileWareNewGuid.aspx – HLGEM

답변

3

GUID는 16 진수입니다. "다른 문자를 대체하는 데 사용할 수있는 문자가 아닙니다"가 아니라 결과 문자열이 유효한 16 진수 여야합니다. 반드시 고유 한 GUID 자체는 아니며 GUID가 나타낼 수있는 숫자 범위 (2^128)는 시스템에서 두 번 생성되는 동일한 GUID 확률이 무시할 수있는 값입니다.

+0

Aaah. 내가 참조. 감사. – 5arx

관련 문제