にSQL Serverで、私は、スキーマのを制御することはできませんテーブルをUNIQUEIDENTIFIERするvarchar型は、フォーマット「a89b1acd95016ae6b9c8aabb07da2010」でuniqueidentifiersを格納VARCHAR(50)として定義された列が含まれています(なしハイフン)変換
私がしたいですそれらを.Net Guidに渡すためのSQLのuniqueidentifierに変換します。ただし、次のクエリの行が私のために動作しません。
select cast('a89b1acd95016ae6b9c8aabb07da2010' as uniqueidentifier)
select convert(uniqueidentifier, 'a89b1acd95016ae6b9c8aabb07da2010')
をしての結果:
Msg 8169, Level 16, State 2, Line 1 Conversion failed when converting from a character string to uniqueidentifier.
同じクエリをハイフン付きのuniqueidentifier作業罰金を使用したが、データはその形式で保存されていません。
これらの文字列をSQLのuniqueidentifierに変換する別の(効率的な)方法がありますか。 - 私は.Netコードでやりたいとは思わない。
文字と数字だけの行は本当に有効なGUID表現ではありません - Quassnoiのような文字列解析魔法に頼らざるを得ないでしょう。 –