我可以在不解析定义的情况下确定存储过程是否使用动态 sql 吗?

ber*_*d_k 4 sql-server-2008 dynamic-sql

由于似乎无法在不解析 cf 的情况下从注释中剥离过程定义。this,似乎没有可靠的 T-SQL 查询来回答这个问题。

或者我可以从任何系统视图中获取此信息吗?

参见 我关于剥离评论的问题

gbn*_*gbn 11

不。没有关于“UsesDynamicSQL”的标志或元数据

必须搜索定义...

有两种方式可以执行动态SQL

您可以在 sys.sql_modules 中搜索第一个,使用 LIKE 搜索第二个

WHERE
   REPLACE(definition, ' ', '') LIKE '%EXEC(%'
   OR
   REPLACE(definition, ' ', '') LIKE '%EXECUTE(%'
   OR
   definition LIKE '%sp[_]executesql%'
Run Code Online (Sandbox Code Playgroud)