ตารางที่ฉันไม่สามารถควบคุมสคีมามีคอลัมน์ที่กำหนดเป็น varchar (50) ซึ่งเก็บตัวบ่งชี้ที่ไม่ซ้ำกันในรูปแบบ 'a89b1acd95016ae6b9c8aabb07da2010' (ไม่มียัติภังค์)
ฉันต้องการแปลงสิ่งเหล่านี้เป็นตัวบ่งชี้เฉพาะใน SQL เพื่อส่งผ่านไปยัง. Net Guid อย่างไรก็ตามบรรทัดแบบสอบถามต่อไปนี้ใช้ไม่ได้สำหรับฉัน:
select cast('a89b1acd95016ae6b9c8aabb07da2010' as uniqueidentifier)
select convert(uniqueidentifier, 'a89b1acd95016ae6b9c8aabb07da2010')
และส่งผลให้:
ข่าวสารเกี่ยวกับ 8169 ระดับ 16 สถานะ 2 บรรทัดที่ 1 การแปลงล้มเหลวเมื่อแปลงจากสตริงอักขระเป็น uniqueidentifier
แบบสอบถามเดียวกันโดยใช้ตัวบ่งชี้เฉพาะที่มียัติภังค์ทำงานได้ดี แต่ข้อมูลจะไม่ถูกจัดเก็บในรูปแบบนั้น
มีวิธีอื่น (ที่มีประสิทธิภาพ) ในการแปลงสตริงเหล่านี้เป็นตัวบ่งชี้เฉพาะใน SQL - ฉันไม่ต้องการทำในรหัส. Net