Вашият примерен xml няма Pages
възел. Това означава, че когато FROM
клауза е изчислена, се формира кръстосано съединение между списък от нула редове и списък от един ред. Полученият продукт няма редове, така че няма нищо SELECT
ed, така че нищо не е INSERT
изд.
Ако всъщност искате да вмъкнете един ред в BookDetails
за всеки booksdetail
възел във входящия xml, трябва да направите нещо като
SELECT
ParamValues.PL.value('Pages[1]','int'),
CAST(ParamValues.PLr.value('Description[1]','varchar(max)') AS text)
FROM
@xml.nodes('/booksdetail') as ParamValues(PL)
Тоест, раздробете входящия xml в booksdetail
възли и извадете всеки от .value
които искате от тези редове.