L'xml di esempio non ha Pages
nodo. Ciò significa che quando il FROM
viene calcolata la clausola, viene formato un cross join tra un elenco di zero righe e un elenco di una riga. Il prodotto risultante non ha righe, quindi non c'è niente SELECT
ed, quindi niente è INSERT
ed.
Se vuoi effettivamente inserire una riga in BookDetails
per ogni booksdetail
node nell'xml in arrivo, dovresti fare qualcosa di simile
SELECT
ParamValues.PL.value('Pages[1]','int'),
CAST(ParamValues.PLr.value('Description[1]','varchar(max)') AS text)
FROM
@xml.nodes('/booksdetail') as ParamValues(PL)
Cioè, distruggi l'xml in arrivo in booksdetail
nodi ed estrarre ciascuno dei .value
s vuoi da queste righe.