मैं इस xml है:एसक्यूएल सर्वर: OPENXML बनाम चयन ... से एक्सएमएल से निपटने के दौरान?
DECLARE @x XML
SET @x =
'<data>
<add>a</add>
<add>b</add>
<add>c</add>
</data>';
टास्क:
मैं a,b,c
सूचीबद्ध करना चाहते हैं।
दृष्टिकोण 1:
SELECT s.value('.', 'VARCHAR(8000)') AS [ADD]
FROM @x.nodes('/data/add') AS t(s)
दृष्टिकोण 2:
DECLARE @idoc INT
EXEC sp_xml_preparedocument @idoc OUTPUT, @x
SELECT *
FROM OPENXML(@idoc, '/data/add', 2)
WITH ([add] NVARCHAR(MAX) '.')
उन दोनों को मुझे दे:
क्ष uestion:
पसंदीदा तरीका कौन सा है?
उत्तरार्द्ध बनाम पूर्व (या उपाध्यक्ष) के कोई फायदे हैं?
मैं व्यक्तिगत रूप से दृष्टिकोण # 1 पसंद करते हैं - यह सा बहुत अधिक मेरे लिए सहज ज्ञान युक्त है, और यह 'sp_xml_preparedocument' आदि के अतिरिक्त कदम की आवश्यकता नहीं है - बस सादे –
@marc_s का उपयोग करना आसान है और इसके साथ ... मतलब # 1 दृश्यों और इस तरह उपयोग किया जा सकता है। –