Uw voorbeeld-xml heeft geen Pages
knooppunt. Dit betekent dat wanneer de FROM
clausule wordt berekend, wordt een kruisverbinding gevormd tussen een lijst met nul rijen en een lijst met één rij. Het resulterende product heeft geen rijen, dus er is niets SELECT
ed, dus niets is INSERT
red.
Als u daadwerkelijk één rij wilt invoegen in BookDetails
voor elke booksdetail
knooppunt in de inkomende xml, moet u iets als . doen
SELECT
ParamValues.PL.value('Pages[1]','int'),
CAST(ParamValues.PLr.value('Description[1]','varchar(max)') AS text)
FROM
@xml.nodes('/booksdetail') as ParamValues(PL)
Dat wil zeggen, versnipper de inkomende XML in booksdetail
knooppunten, en trek elk van de .value
s u wilt van deze rijen.