スキーマを制御できないテーブルには、varchar(50)として定義された列が含まれています。この列には、一意の識別子が「a89b1acd95016ae6b9c8aabb07da2010」(ハイフンなし)の形式で格納されます。
.Net Guidに渡すために、これらをSQLで一意の識別子に変換したいと思います。ただし、次のクエリ行は機能しません。
select cast('a89b1acd95016ae6b9c8aabb07da2010' as uniqueidentifier)
select convert(uniqueidentifier, 'a89b1acd95016ae6b9c8aabb07da2010')
結果は次のようになります。
メッセージ8169、レベル16、状態2、行1 文字列からuniqueidentifierへの変換時に変換に失敗しました。
ハイフンでつながれたuniqueidentifierを使用した同じクエリは正常に機能しますが、データはその形式で保存されません。
これらの文字列をSQLで一意の識別子に変換する別の(効率的な)方法はありますか?--.Netコードでは実行したくありません。