在代码库中搜索对表名称的引用
我有一个充满 VB6 应用程序遗留代码的目录。
我被要求提供该应用程序使用的所有表的列表,以便我们可以为其分配一个特殊的 SQL Server 用户名。
扫描代码库以查找表名称引用的最佳方法是什么?
我的一些想法:
搜索以下关键字: “来自”、“更新”、“插入”和 手动记下表名称 围绕这些短语。
问题:大量手动工作
使用 SQL 运行应用程序 跟踪并尝试练习每一个 函数,然后扫描日志 表名
问题:同样的手动工作,而且我可能会忽略一些晦涩的函数
有人可以建议更好的替代方案吗?
I have a directory full of legacy code from a VB6 application.
I have been asked to provide a list of all the tables that this application uses, so we can assign a special SQL Server username to it.
What is the best way to scan a codebase for references to table names?
Some ideas I've had:
Search for the following keywords:
"FROM", "UPDATE", "INSERT", and
manually note the table name(s)
surrounding those phrases.Problem: Lots of manual work
Run the application with a SQL
Trace, and try to exercise each
function, then scan the logs for
table namesProblem: Same manual work, plus I might overlook some obscure functions
Can anyone suggest better alternatives?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我将从 information_schema.tables 中进行选择并将结果保存到文件中以构建表列表,然后使用 bat 文件或命令行正则表达式工具将表列表用作与源代码目录中的文件进行比较的源。 您可以输出哪些文件被命中,以及哪些表名被命中(如果您感兴趣的话,命中在哪一行)。 我不是 grep 高手,但我认为这将是正确使用的工具。
编辑
根据数据访问的处理方式,您可能希望扩展搜索列表以包括来自 information_schema.routines 的存储过程
使用 finstr、光标以及可能的黑暗面编辑 2 方法
请注意,虽然下面的内容应该可以工作,如果指向错误的目录,可能会造成严重破坏。 此外,仅当可从服务器访问源代码并且启用 xp_cmdshell 时,它才有效。 也许整个想法都是邪恶的,我不知道。
I would select from information_schema.tables and save the results to file to build a table list and then use a bat file or command line regex tool to use the table list as a source for comparisons against the files in the source code directory. You could output what files had a hit, and what table names were hit (what line the hit was on if you're interested). I'm not a grep whiz, but I think that would be the right sort of tool to use.
EDIT
Depending on how the data access was handled, you might want to expand the search list to include stored procs from information_schema.routines
Edit 2 Approach using finstr, a cursor, and maybe the dark side
Please note that while the below should work, if pointed at the wrong directory, it could cause havoc. Also, it will only work if the source code is accessible from the server and xp_cmdshell is enabled. Maybe the whole idea is evil, I don't know.