Tabel yang skemanya tidak saya kendalikan, berisi kolom yang didefinisikan sebagai varchar (50) yang menyimpan pengidentifikasi unik dalam format 'a89b1acd95016ae6b9c8aabb07da2010' (tanpa tanda hubung)
Saya ingin mengubahnya menjadi pengidentifikasi unik dalam SQL untuk diteruskan ke .Net Guid. Namun, baris kueri berikut tidak berfungsi untuk saya:
select cast('a89b1acd95016ae6b9c8aabb07da2010' as uniqueidentifier)
select convert(uniqueidentifier, 'a89b1acd95016ae6b9c8aabb07da2010')
dan menghasilkan:
Msg 8169, Tingkat 16, Negara Bagian 2, Baris 1 Konversi gagal saat mengubah dari string karakter menjadi pengidentifikasi unik.
Kueri yang sama menggunakan pengidentifikasi unik bertanda hubung berfungsi dengan baik tetapi datanya tidak disimpan dalam format itu.
Apakah ada cara lain (efisien) untuk mengubah string ini menjadi pengidentifikasi unik di SQL. - Saya tidak ingin melakukannya dalam kode .Net.
sql
sql-server-2005
uniqueidentifier
granat
sumber
sumber
Jawaban:
sumber
Itu akan membuat fungsi yang praktis. Juga, perhatikan saya menggunakan STUFF daripada SUBSTRING.
sumber
varchar col C Anda:
sumber
sumber
Jika string Anda berisi karakter khusus, Anda dapat melakukan hash ke md5 dan kemudian mengubahnya menjadi guid / uniqueidentifier.
sumber
Panduan yang diberikan bukanlah format yang benar (.net Provided guid).
sumber