Uma tabela para a qual não tenho controle do esquema contém uma coluna definida como varchar (50) que armazena identificadores exclusivos no formato 'a89b1acd95016ae6b9c8aabb07da2010' (sem hífens)
Quero convertê-los em identificadores exclusivos em SQL para passar para um .Net Guid. No entanto, as seguintes linhas de consulta não funcionam para mim:
select cast('a89b1acd95016ae6b9c8aabb07da2010' as uniqueidentifier)
select convert(uniqueidentifier, 'a89b1acd95016ae6b9c8aabb07da2010')
e resultar em:
Msg 8169, Nível 16, Estado 2, Linha 1 A conversão falhou ao converter de uma sequência de caracteres em identificador único.
As mesmas consultas usando um identificador exclusivo hifenizado funcionam bem, mas os dados não são armazenados nesse formato.
Existe outra maneira (eficiente) de converter essas strings em identificadores exclusivos em SQL. - Não quero fazer no código .Net.
sql
sql-server-2005
uniqueidentifier
Grenade
fonte
fonte
Respostas:
fonte
Seria uma função útil. Além disso, observe que estou usando STUFF em vez de SUBSTRING.
fonte
seu varchar col C:
fonte
fonte
Se sua string contiver caracteres especiais, você pode hash para md5 e então convertê-la em um guid / identificador único.
fonte
O guid fornecido não está no formato correto (guid fornecido .net).
fonte