This likely won't make any difference when looping through stored procedure names, but it should be noted that "_" is a wildcard, representing any one character.
like 'dt_%' would be better written as like 'dt\_%' escape '\' to force the script to treat the underscore as itself.
Otherwise, great script! Very useful.