“如何拉动全部”;选择";来自.SQL文件的语句

“如何拉动全部”;选择";来自.SQL文件的语句,sql,sql-server,oracle,unix,Sql,Sql Server,Oracle,Unix,我有很多Oracle和SQL Server.SQL脚本。我想从这些脚本中提取所有“select”语句。然后我想拉一个列表,其中包含所有引用的表。本质上是创建正在使用的表的列表。从那里,我可以删除列表中不存在的任何表。有人这样做过吗?我可以建议你改变这个过程吗?首先创建所有数据库表的列表,并将该列表放置在包含*.sql或transact_sql代码的环境中。然后编写一个脚本,在所有脚本中搜索每个文件名。计算每个文件名的点击次数并报告结果应该相对容易。然后可以删除命中率为零的文件。但是,由于可能存在

我有很多Oracle和SQL Server.SQL脚本。我想从这些脚本中提取所有
“select”
语句。然后我想拉一个列表,其中包含所有引用的表。本质上是创建正在使用的表的列表。从那里,我可以删除列表中不存在的任何表。有人这样做过吗?

我可以建议你改变这个过程吗?首先创建所有数据库表的列表,并将该列表放置在包含*.sql或transact_sql代码的环境中。然后编写一个脚本,在所有脚本中搜索每个文件名。计算每个文件名的点击次数并报告结果应该相对容易。然后可以删除命中率为零的文件。但是,由于可能存在隐藏的表依赖项,因此还必须解析所有触发器的代码。(无论如何,该死的触发器!)

在SQL Server中,最好的办法是查看依赖项。只查找SELECT是不安全的,因为它们也可能被更新/删除/插入。建议您,要非常小心,不要删除自动生成的白名单中没有的所有表。至少让了解数据模型的人手动查看结果。(Un?)幸运的是,依赖项都在代码中。此外,“了解”数据模型的人也不见了。这就是为什么我觉得我最好的选择是翻阅脚本。@JNK,是的,我还需要包括更新/删除/插入,但我想如果我能先得到SELECT的,其余的就跟着来了。只是希望有人有一个脚本可以做到这一点。我想,我需要先将它们格式化,以使过程更简单。所有触发器也都在*.sql脚本中,所以这是一件好事。由于我在多个服务器上拥有400多个数据库,所以这个列表将非常长。你有那个剧本吗?