Eine Tabelle, für die ich keine Kontrolle über das Schema habe, enthält eine als varchar (50) definierte Spalte, in der eindeutige Kennungen im Format 'a89b1acd95016ae6b9c8aabb07da2010' (keine Bindestriche) gespeichert sind.
Ich möchte diese in eindeutige Kennungen in SQL konvertieren, um sie an eine .Net Guid zu übergeben. Die folgenden Abfragezeilen funktionieren bei mir jedoch nicht:
select cast('a89b1acd95016ae6b9c8aabb07da2010' as uniqueidentifier)
select convert(uniqueidentifier, 'a89b1acd95016ae6b9c8aabb07da2010')
und führen zu:
Nachricht 8169, Ebene 16, Status 2, Zeile 1 Die Konvertierung ist beim Konvertieren von einer Zeichenfolge in eine eindeutige Kennung fehlgeschlagen.
Dieselben Abfragen mit einer getrennten eindeutigen Kennung funktionieren einwandfrei, aber die Daten werden nicht in diesem Format gespeichert.
Gibt es eine andere (effiziente) Möglichkeit, diese Zeichenfolgen in eindeutige Kennungen in SQL zu konvertieren? - Ich möchte es nicht im .NET-Code tun.
sql
sql-server-2005
uniqueidentifier
Granate
quelle
quelle
Antworten:
quelle
Es wäre eine praktische Funktion. Beachten Sie auch, dass ich STUFF anstelle von SUBSTRING verwende.
quelle
Ihr varchar col C:
quelle
quelle
Wenn Ihre Zeichenfolge Sonderzeichen enthält, können Sie sie in md5 hashen und dann in eine Guid / Uniqueidentifier konvertieren.
quelle
Die bereitgestellte Guid hat kein korrektes Format (.net Provided Guid).
quelle