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.