Ваш образец xml не имеет узла Pages
.Это означает, что при вычислении предложения FROM
формируется перекрестное соединение между списком из нулевых строк и списком из одной строки.Полученный продукт не имеет строк, поэтому ничего не существует SELECT
ed, поэтому ничего не равно INSERT
ed.
Если вы действительно хотите вставить одну строку в 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
s из этихстроки.