15 सेकेंड पर SQL XML पर तीन-भाग श्रृंखला देखें:http://www.15seconds। कॉम/इश्यू/050803.htm ।
मैं व्यक्तिगत रूप से SQL XQuery फ़ंक्शंस का उपयोग आपके XML को बिट्स और टुकड़ों में अलग करने और SQL सर्वर में संग्रहीत करने के लिए करूँगा।
अगर आपके पास ऐसा कुछ है:
<data>
<person>
<name>Jones</name>
<firstname>Peter</firstname>
</person>
<person>
<name>Smith</name>
<firstname>Frank</firstname>
</person>
<data>
आप कुछ इस तरह लिख सकते हैं:
SELECT
Data.Person.value('(name)[1]', 'varchar(20)') as 'Name',
Data.Person.value('(firstname)[1]', 'varchar(20)') as 'First Name'
FROM
@XmlVar.nodes('/data/person') As Data(Person)
तो मूल रूप से, .nodes
फ़ंक्शन आपके XML को "छद्म-तालिका" Data.Person
. में काट देता है - प्रत्येक <person>
प्रविष्टि तालिका में एक पंक्ति बन जाती है।
.value()
. के साथ फ़ंक्शन, आप उन कटे हुए XML नोड्स से एकल मान निकाल सकते हैं। अब आपके पास varchar(20) फ़ील्ड्स का एक गुच्छा है, जो उदा हो सकता है। तालिका में डाला गया।
यदि आपका एक्सएमएल काफी छोटा है (कुछ सौ प्रविष्टियां) तो यह विधि अच्छी तरह से काम करती है। यदि आपके पास बड़ी XML फ़ाइलें हैं, तो आप अन्य विधियों की जांच करना चाहेंगे, जैसे एक्सएमएल बल्कलोड ।