MS SQL 에서 유니크 키가 충돌이 나게 개발이 되어 있어서 수정을 해야 하는 상황...
문제는 30바이트로 제한이 되어 있어서 수정하려면 모든 디비및 API를 수정해야 하는 상황 대략 난감...
유니크로는 newid()로 전세계 유니크 키로 선택 했고 문제는 길이... base64로 엔코딩 하니 길이는 24바이트로 수정할게 줄었네요. ^^
엔코딩 디코딩도 가능 하니 간단한 암호화에 응용 해도 될듯 하네요.
declare @source varbinary(max), @encoded varchar(max), @decoded varbinary(max)
set @source = convert(varbinary(max), ‘Hello Base64′)
set @encoded = cast(” as xml).value(‘xs:base64Binary(sql:variable("@source"))’, ‘varchar(max)’)
set @decoded = cast(” as xml).value(‘xs:base64Binary(sql:variable("@encoded"))’, ‘varbinary(max)’)
select
convert(varchar(max), @source) as source_varchar,
@source as source_binary,
@encoded as encoded,
@decoded as decoded_binary,
convert(varchar(max), @decoded) as decoded_varchar