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

SQL सर्वर XML मौजूद है ()

ठीक है, यहाँ आपका XPath व्यंजक "अपराधी" है:

query('//branch')

यह कहता है:सभी . चुनें <branch> पूरे दस्तावेज़ से नोड्स। यह वही कर रहा है जो आप इसे करने के लिए कह रहे हैं, वास्तव में....

यहाँ इस क्वेरी में क्या गलत है??

SELECT 
    XMLData.query('/library/books/book[@type=sql:variable("@genre")]//branch')
FROM dbo.TableA

यह सभी <branch> . को पुनः प्राप्त करेगा <book> . के लिए सबनोड्स नोड जिसमें type="SF" . है एक विशेषता के रूप में....

आप अपने query() . के साथ क्या हासिल करने की कोशिश कर रहे हैं? , exist() और value() सभी एक ही बयान में ?? बहुत संभव है, इसे बहुत आसान तरीके से किया जा सकता है....

साथ ही:मुझे लगता है कि आप गलत व्याख्या कर रहे हैं कि .exist() SQL सर्वर में XQuery करता है। अगर आपका बयान यहां है:

 SELECT (some columns)
 FROM dbo.TableA
 WHERE XMLData.exist('//book[@type = sql:variable("@genre")]') = 1

आप मूल रूप से SQL सर्वर को dbo.TableA . से सभी पंक्तियों को पुनः प्राप्त करने के लिए कह रहे हैं जहां XML XMLData . में संग्रहीत है इसमें एक <book type=.....> . है नोड - आप तालिका से पंक्तियों का चयन कर रहे हैं - नहीं XMLData में चयन लागू करना कॉलम की सामग्री...



  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. रिकर्सिव सीटीई एसक्यूएल पदानुक्रम स्तर के लिए के साथ

  3. डेटाबेस मेल प्रोफाइल (SSMS) के भीतर किसी खाते की प्राथमिकता बदलें

  4. एंटिटी फ्रेमवर्क कोड-फर्स्ट इनिशियलाइज़र में डेटाबेस संयोजन सेट करें

  5. SQL सर्वर ड्राइवर का उपयोग करके PDO के माध्यम से SQL सर्वर से कनेक्ट करें