การจัดรูปแบบ XML ผลลัพธ์ใน SQL Server 2005: คู่มือสำหรับ FOR XML EXPLICIT
เมื่อทำงานกับ SQL Server คุณอาจพบสถานการณ์ที่คุณต้องการแปลงผลลัพธ์จากคำสั่งสอบถามของคุณเป็นรูปแบบ XML ปัญหาที่พบบ่อยคือเมื่อพยายามที่จะให้ได้โครงสร้าง XML ที่เฉพาะเจาะจง สำหรับตัวอย่าง คุณอาจจำเป็นต้องส่งออกผลลัพธ์ไปยังโปรแกรมที่เก็บข้อมูลอื่นในขณะที่ยังคงรูปแบบที่แน่นอน ในบล็อกโพสต์นี้ เราจะมาดูกันว่าจัดรูปแบบ XML ผลลัพธ์อย่างถูกต้องใน SQL Server 2005 โดยใช้คลอส FOR XML EXPLICIT
ได้อย่างไร
ปัญหา: โครงสร้าง XML ที่ต้องการ
เริ่มด้วยการวิเคราะห์ปัญหา ลองพิจารณาตารางที่มีโครงสร้างดังตัวอย่างในตารางด้านล่าง:
LocationID | AccountNumber |
---|---|
long-guid-here | 12345 |
long-guid-here | 54321 |
เพื่อส่งออกผลเป็น XML ไปยังโปรแกรมที่เก็บข้อมูลอื่น คุณต้องการให้รูปแบบ XML เป็นดังนี้:
<root>
<clientID>12345</clientID>
<clientID>54321</clientID>
</root>
อย่างไรก็ตาม ความพยายามเริ่มต้นของคุณได้ผลลัพธ์เป็นดังนี้:
<root clientID="10705"/>
ชัดเจนว่าคุณไม่ได้ผลลัพธ์ที่ต้องการ มาจัดการปัญหานี้กันเถอะ
ทางออก: การวิเคราะห์คำสั่ง SQL
เพื่อให้ได้รูปแบบ XML ที่ต้องการ คุณต้องปรับคำสั่ง SQL ของคุณ นี่คือคำแนะนำทีละขั้นตอนเพื่อเข้าถึงผลลัพธ์ที่คาดหวัง
ขั้นตอนที่ 1: แก้ไขคำสั่ง SQL
คำสั่ง SQL เบื้องต้นของคุณต้องมีการปรับแต่ง เปลี่ยนเป็นคำสั่งต่อไปนี้:
SELECT
1 AS Tag,
0 AS Parent,
AccountNumber AS [Root!1!AccountNumber!element]
FROM
Location.LocationMDAccount
WHERE
LocationID = 'long-guid-here'
FOR XML EXPLICIT
ขั้นตอนที่ 2: ความเข้าใจในส่วนประกอบของคำสั่ง
- คำสั่ง SELECT: คุณเริ่มต้นด้วยการเลือกข้อมูลที่ต้องการ ในกรณีนี้คือ
AccountNumber
- Tag และ Parent: ค่าของ
Tag
และParent
เป็นสิ่งจำเป็นสำหรับการสร้างโครงสร้าง XML อย่างถูกต้อง ที่นี่1
และ0
ถูกใช้เพื่อบ่งบอกระดับราก - การกำหนดรูปแบบ XML: ส่วน
AS [Root!1!AccountNumber!element]
เป็นส่วนสำคัญ มันมีวัตถุประสงค์เพื่อสร้างองค์ประกอบ XML สำหรับแต่ละAccountNumber
ขั้นตอนที่ 3: การดำเนินการคำสั่ง
รันคำสั่ง SQL ที่ปรับแต่งแล้วกับฐานข้อมูล SQL Server ของคุณ หากทุกอย่างเป็นไปตามแผน คุณควรได้รับผลลัพธ์ XML ที่ถูกจัดรูปแบบอย่างถูกต้อง ดูเหมือนดังนี้:
<root>
<AccountNumber>12345</AccountNumber>
<AccountNumber>54321</AccountNumber>
</root>
สรุป
การทำให้ได้รูปแบบ XML ที่ต้องการนั้นสามารถทำได้ง่ายดายด้วยคำสั่ง SQL ที่ถูกต้อง คลอส FOR XML EXPLICIT
ใน SQL Server 2005 อนุญาตให้มีการควบคุมรายละเอียดเกี่ยวกับวิธีการที่ข้อมูลของคุณแปลงเป็น XML โดยการปรับคำสั่งของคุณเพื่อรวม Tag
, Parent
และส่วนประกอบการจัดรูปแบบที่ถูกต้อง คุณสามารถจัดรูปแบบ XML ผลลัพธ์ได้สำเร็จตามความต้องการของคุณ
หากคุณทำตามขั้นตอนที่กล่าวถึงในบล็อกโพสต์นี้ คุณจะสามารถจัดรูปแบบผลลัพธ์ SQL Server 2005 ของคุณให้เป็นโครงสร้าง XML ที่คุณต้องการได้แล้ว ขอให้มีความสุขกับการสอบถาม!