Using the form ... | tr -dc '[:digit:]' works fine for me. The definition for the -c flag is for the complement, i.e. the opposite so it should delete everything except digits.
Can you check your manual page to see if the ic flag is supported?
If you are in bash and the message is always the same format, you could also do this:-
read a b rows c < <(echo "Insert completed. 100 rows added.")
echo $rows
It only calls echo so avoids the extra process for tr, awk or whatever and doesn't care if you have digits or the text No
You can replace the echo command with whatever command you need to generate the output in the first place.
This also works with recent versions of bash (at least GNU bash, version 3.2.57 and later; but I don't know how far back it appeared in earlier releases).
This form of variable substitutions is an extension that is allowed, but neither required nor explicitly mentioned, by the POSIX standards.
I meant to write bash , but somehow the "b" did not make it to the post :),
This form of parameter expansion was introduced in GNU bash version 2.0 (Nov 1996).
--
(the typo suggested that the Almquist shell ( ash ) could do it, which is not the case, nor is it the ambition of ash ..)