查询以查找已使用游标或while循环的所有存储过程

时间:2016-11-02 03:15:32

标签: sql stored-procedures while-loop cursor

我知道Stack溢出是如何工作的,但我没有数据或SQL脚本来发布我的发现。

我google了很多但找不到我要找的东西。

是否可以使用SQL脚本在我的DB中找到已使用游标或while循环的存储过程或函数列表,以便我可以将它们更改为基于SET的语句?

另外,如果可能,我可以知道哪些存储过程使用了动态查询吗?

我不想手动检查每个存储过程,因此寻找一些自动化方法。

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您的SP和其他对象未加密,您可以尝试这样的

SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_DEFINITION LIKE '%EXEC%(%' 
                                             OR ROUTINE_DEFINITION LIKE '%WHILE%'
                                             OR ROUTINE_DEFINITION LIKE '%CURSOR%'

这肯定 - 不会以任何方式变得聪明,但你可以添加更多条件以获得更好的点击......