Din eksempel-xml har ikke en Pages
node. Det betyder, at når FROM
klausul beregnes, dannes der en krydsforbindelse mellem en liste med nul rækker og en liste med én række. Det resulterende produkt har ingen rækker, så der er intet SELECT
ed, så intet er INSERT
red.
Hvis du rent faktisk ønsker at indsætte en række i BookDetails
for hver booksdetail
node i den indgående xml, bør du gøre noget lignende
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 vil sige, makulere den indgående xml til booksdetail
noder, og træk hver af .value
ud s du ønsker fra disse rækker.