Votre exemple XML n'a pas de Pages
nœud. Cela signifie que lorsque le FROM
clause est calculée, une jointure croisée est formée entre une liste de zéro lignes et une liste d'une ligne. Le produit résultant n'a pas de lignes, il n'y a donc rien SELECT
ed, donc rien n'est INSERT
éd.
Si vous souhaitez réellement insérer une ligne dans BookDetails
pour chaque booksdetail
node dans le xml entrant, vous devriez faire quelque chose comme
SELECT
ParamValues.PL.value('Pages[1]','int'),
CAST(ParamValues.PLr.value('Description[1]','varchar(max)') AS text)
FROM
@xml.nodes('/booksdetail') as ParamValues(PL)
C'est-à-dire, broyez le xml entrant dans booksdetail
nœuds, et extrayez chacun des .value
s que vous voulez à partir de ces lignes.