Wednesday 15 February 2012

sql server - Dynamic XML to Stored Procedure Insert -


मेरे पास XML समान है:

  & lt; main & gt; & Lt; kim id = "child1_id" name = "यह बच्चा 1 है" सक्रिय = "1" / & gt; & Lt; kim id = "Child2 id" name = "यह बच्चा 2 है" सक्रिय = "1" / & gt; & Lt; lee id = "child3_id" heigt = "189" वजन = "70" / & gt; & Lt; / मुख्य & gt;   

किम और ली मेरे डेटाबेस में तालिकाओं का नाम है अब मुझे किम और ली के ऊपर एक्सएमएल से मूल्य डालने के लिए एक संग्रहीत कार्यवाही करनी है मैं ओपनएक्सएमएल का उपयोग कर तालिका नाम प्राप्त कर सकता हूं और मुझे पता है कि मैं इस तरह से क्वेरी डालने के लिए क्वेरी का उपयोग कर सकता हूँ (उदाहरण के लिए) किम का मान:

  घोषित @ tempChild1 तालिका (id varchar (20), नाम varchar (50), सक्रिय बिट) सी .value ('@ id', 'varchar (20)') के रूप में आईडी, C.value ('@ name', 'varchar (50)') के रूप में नाम, C.value ( @ Xml.nodes ('/ main / kim') टी (c) से बाल 1 में डालें * @ tempChild1 से * सक्रिय रूप से 'सक्रिय', 'बिट') सक्रिय रूप से   

समस्या है, यह एक गतिशील XML है और मुझे नहीं पता कि टेबल XML से कैसे आएगा, लेकिन मुझे अभी भी XML के आधार पर एक सम्मिलन क्वेरी बनाना होगा। क्या एसक्यूएल में ऐसा करने की कोई संभावना है? क्या मैं ऊपर दिए गए एक्सएमएल से नीचे दिए गए स्टेटमेंट को बना सकता हूं?

  exec spx_kim @xml exec spx_lee @xml   

के साथ @ xml प्रत्येक किम का मान है और XML में ली नोड।

मैं वास्तव में आपकी मदद के लिए हर तरह की सराहना करता हूं

यह एक कोशिश करें -

डीडीएल: < / P>

  निर्माण प्रक्रिया dbo.usp_kim (@xml एक्सएमएल) के रूप में प्रारंभ करें नेक्स्ट सेट पर; - INSERT में .... SELECT tcvalue ('@ आईडी', 'VARCHAR (20)'), टीसीवीएलई ('@ नेम', 'वीएआरएआरएआर (50)'), टीसीवीएलई ('सक्रिय', ' बिट ') से @ XML.nodes (' / मुख्य / किम ') टी (सी) END जाओ प्रक्रिया dbo.usp_lee (@ एक्सएमएल एक्सएमएल) के रूप में शुरू - INSERT में .... SELECT tcvalue (' @ आईडी ' , 'एक्सएचडीएआरएआर (20)'), टीसीवल्यू ('हेइगेट', 'आईएनटी'), टीसीवीएलई ('@ वजन', 'आईएनटी') @ XML.nodes ('/ मुख्य / ली') टी (सी ) END जाओ   

क्वेरी:

  DECLARE @XML XML का चयन करें @ XML = '& lt; main & gt; & Lt; kim id = "child1_id" name = "यह बच्चा 1 है" सक्रिय = "1" / & gt; & Lt; kim id = "Child2 id" name = "यह बच्चा 2 है" सक्रिय = "1" / & gt; & Lt; lee id = "child3_id" heigt = "189" वजन = "70" / & gt; & Lt; / मुख्य & gt; ' EXEC dbo.usp_kim @XML = @XML EXEC dbo.usp_lee @XML = @XML    

No comments:

Post a Comment