如何在SQL Server数据库中列出包含七个以上连接操作的存储过程?

san*_*ina 1 sql-server

我有一个包含超过一千个存储过程的数据库.我需要列出包含七个以上连接操作的存储过程以进行优化.

有没有办法做到这一点?

val*_*lex 6

只需检查INFORMATION_SCHEMA.ROUTINES表中的ROUTINE_DEFINITION字段即可

SELECT ROUTINE_NAME FROM INFORMATION_SCHEMA.ROUTINES 
where (LEN(ROUTINE_DEFINITION) - 
       LEN(REPLACE(ROUTINE_DEFINITION, 'JOIN', ''))) / LEN('JOIN')>=7
Run Code Online (Sandbox Code Playgroud)