Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

संग्रहीत प्रक्रिया में पैरामीटर के रूप में एक्सएमएल (एसक्यूएल सर्वर)

आपकी पहली क्वेरी जिस पर आप काम का दावा करते हैं, वास्तव में आपके द्वारा प्रदान किए गए XML के साथ काम नहीं करती है। यह ऐसा होना चाहिए।

declare @handle int
declare @XML xml = '<ROOT><ids><id>2013-01-01</id></ids><ids><id>2013-01-02</id></ids></ROOT>'
exec sp_xml_preparedocument @handle out, @XML
select * from openxml(@handle, '/ROOT/ids', 2) with (id Date)
exec sp_xml_removedocument @handle

दूसरा संस्करण होना चाहिए

declare @handle int
declare @XML xml = '<ROOT><id>2013-01-01</id><id>2013-01-02</id></ROOT>'
exec sp_xml_preparedocument @handle out, @XML
select * from openxml(@handle, '/ROOT/id', 2) with (id Date '.')
exec sp_xml_removedocument @handle

चूंकि आप SQL Server 2008 या बाद के संस्करण का उपयोग कर रहे हैं, आप इसके बजाय XML डेटाटाइप का उपयोग कर सकते हैं।

declare @XML xml = '<ROOT><id>2013-01-01</id><id>2013-01-02</id></ROOT>'

select T.N.value('text()[1]', 'date') as id
from @XML.nodes('ROOT/id') as T(N)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डेटाबेस सीमाओं के पार SQL सर्वर विदेशी कुंजी - प्रवर्तन के लिए तकनीक

  2. एक संग्रहीत कार्यविधि में SQL सर्वर चर गुंजाइश

  3. डेटाबेस में प्रत्येक तालिका में रिकॉर्ड की संख्या सूचीबद्ध करने की क्वेरी

  4. SQL सर्वर (T-SQL उदाहरण) में 'समय' को 'datetime2' में बदलें

  5. चयन के साथ अस्थायी तालिका कैसे बनाएं * सीटीई क्वेरी से अस्थायी तालिका में