Ditt exempel på xml har ingen Pages
nod. Detta betyder att när FROM
klausulen beräknas, bildas en korskoppling mellan en lista med nollrader och en lista med en rad. Den resulterande produkten har inga rader, så det finns inget SELECT
ed, så ingenting är INSERT
red.
Om du verkligen vill infoga en rad i BookDetails
för varje booksdetail
nod i den inkommande xml, bör du göra något liknande
SELECT
ParamValues.PL.value('Pages[1]','int'),
CAST(ParamValues.PLr.value('Description[1]','varchar(max)') AS text)
FROM
@xml.nodes('/booksdetail') as ParamValues(PL)
Det vill säga strimla den inkommande xml-filen till booksdetail
noder och dra ut var och en av .value
s du vill ha från dessa rader.