Since there seems to be no way to strip the procedure definition from comments without parsing cf. this, there seem to be no reliably T-SQL query to answer this question.
Or can I get this information from any system view?
Since there seems to be no way to strip the procedure definition from comments without parsing cf. this, there seem to be no reliably T-SQL query to answer this question.
Or can I get this information from any system view?
No. There is no flag or metadata about "UsesDynamicSQL"
You have to search the definition...
There are 2 ways to execute dynamic SQL
EXEC (..
or EXECUTE ('
You can search for the first in sys.sql_modules, the 2nd using LIKE
WHERE
REPLACE(definition, ' ', '') LIKE '%EXEC(%'
OR
REPLACE(definition, ' ', '') LIKE '%EXECUTE(%'
OR
definition LIKE '%sp[_]executesql%'