我有一个包含一千多个存储过程的数据库。出于优化目的,我需要仅在一个选择语句(包含七个以上连接操作的选择语句)中列出包含七个以上连接操作的存储过程。有没有办法做到这一点?
问问题
184 次
2 回答
0
如果你真的需要它 - 你可以使用 TSql100Parser 类(http://msdn.microsoft.com/en-us/library/microsoft.data.schema.scriptdom.sql.tsql100parser%28v=vs.100%29.aspx)
遍历解析树并找到所需的所有代码案例并不难。
但当然不是那么容易。
于 2013-07-23T10:32:22.687 回答
0
您可以使用:系统表 syscomments 存储过程文本、触发器等在哪里(在文本字段中)
SELECT object_name(id), * FROM syscomments
这样你就可以实现对文本中JOIN关键字数量的查询(使用即PATHINDEX函数或其他关于字符串查询的函数)
object_name(id) 返回对象的名称,在您的情况下为 sp 名称。
于 2013-07-23T08:26:13.663 回答