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.