Seu xml de exemplo não tem um
Pages
nó. Isso significa que quando o FROM
é computada, uma junção cruzada é formada entre uma lista de zero linhas e uma lista de uma linha. O produto resultante não tem linhas, então não há nada SELECT
ed, então nada é INSERT
ed. Se você realmente deseja inserir uma linha em
BookDetails
para cada booksdetail
node no xml de entrada, você deve fazer algo como SELECT
ParamValues.PL.value('Pages[1]','int'),
CAST(ParamValues.PLr.value('Description[1]','varchar(max)') AS text)
FROM
@xml.nodes('/booksdetail') as ParamValues(PL)
Ou seja, fragmente o xml recebido em
booksdetail
nós e extraia cada um dos .value
s que você deseja dessas linhas.