스키마를 제어 할 수없는 테이블에는 'a89b1acd95016ae6b9c8aabb07da2010'(하이픈 없음) 형식으로 고유 식별자를 저장하는 varchar (50)로 정의 된 열이 포함되어 있습니다.
.Net Guid에 전달하기 위해 SQL의 고유 식별자로 변환하고 싶습니다. 그러나 다음 쿼리 줄은 작동하지 않습니다.
select cast('a89b1acd95016ae6b9c8aabb07da2010' as uniqueidentifier)
select convert(uniqueidentifier, 'a89b1acd95016ae6b9c8aabb07da2010')
결과 :
메시지 8169, 수준 16, 상태 2, 줄 1 문자열에서 uniqueidentifier로 변환 할 때 변환에 실패했습니다.
하이픈이있는 고유 식별자를 사용하는 동일한 쿼리는 제대로 작동하지만 데이터는 해당 형식으로 저장되지 않습니다.
이러한 문자열을 SQL의 고유 식별자로 변환하는 또 다른 (효율적인) 방법이 있습니까? -.Net 코드에서하고 싶지 않습니다.
문자와 숫자의 행은 실제로 유효한 GUID 표현이 아닙니다. Quassnoi가 대답에서 보여준 것과 같은 문자열 구문 분석 마법에 의존해야합니다.
—
marc_s