FindStr搜索多个正则表达式的sql脚本

时间:2015-07-21 06:10:28

标签: regex findstr

从SQL复制的报告数据库中为两个不同版本的应用程序提供两组生成的脚本。

旧应用程序有2300多个不必要的表(支持供应商的其他产品),这些表在新版本中不存在。

我需要在新数据库中重新创建函数,存储的查询和视图(也许还有其他东西)。我将Generate Scripts输出中的定义作为单独的.sql文件。问题是许多文件包含对丢失表的引用,所以我想做一种依赖性分析来获取我无法创建的事物列表,因为它们引用了不能创建的表(以及后面的视图)存在。

我有一个文件中缺少表的列表,我想将其用作要搜索的事物列表。

我需要一个正则表达式,它查找以“FROM”开头的行(以及后来的INNER JOIN和LEFT OUTER JOIN),然后是一个缺少的表名(行上可能还有其他文本,如别名。)我使用Notepad ++强制所有出现的| FROM | INNER JOIN | LEFT INNER JOIN |处于新线的开头。

我尝试将findstr与/ g参数一起使用,这样我就可以拥有一个充满正则表达式模式的文件,但它似乎没有正确匹配。

例如findstr /i /r /g:mt.txt *.sql

mt.txt示例

^FROM\ action.*
^FROM\ actiongroup.*
^FROM\ actiontype.*

我认为我的问题与单词FROM之后的空格有关,当我尝试使用findstr的/ c参数时,它总是说它被忽略了。

如果可能的话,我也愿意使用grep或perl来解决这个问题 感谢您提供的任何帮助。

0 个答案:

没有答案