对于我的团队正在开发的一个应用程序,我已经创建了一个数据库副本,以便独立处理系统的一些可能功能。在此过程中,我更改了一些存储过程。同时,团队的其他成员继续在另一个数据库上工作,并更改其中一些存储过程。
代码仍然调用相同的SP名称,因此我需要知道哪些存储过程发生了更改,以便进行正确的修复。有没有办法从一个数据库中提取所有存储过程,并将其与另一个数据库中具有相同名称的SP进行匹配,以查看其中哪些不同(除了USESDB1和使用DB2的区别)。
谢谢
发布于 2009-06-03 16:08:58
大家好。我考虑了所有的回复,下载新软件对我来说不是一个选择。在进一步的研究中,这就是我对这个解决方案的看法。
我简单地查询了两个数据库,以获得所有存储过程及其最近的修改日期的列表。然后,我比较了它们的更改日期,并手动查看了它们的源代码,然后进行了更改。源代码控制肯定会对此有所帮助,但有时事情超出了我的控制范围。
获取所有SP名称列表并更改日期的代码如下所示。
select ROUTINE_NAME, LAST_ALTERED
from information_schema.routines
WHERE
Routine_Type='procedure'
AND specific_Catalog='DATABASE_NAME' ORDER BY LAST_ALTERED发布于 2009-06-03 15:15:41
我建议购买(或者只是评估)一个专用的工具来实现这一点。市场上有许多产品,包括:Apex SQL Diff和Redgate SQL Compare
我使用Apex SQL Diff已经有很多年了,我会全心全意地推荐它。
发布于 2009-06-03 15:12:54
哦,这是你应该早点考虑的事情。一种方法是:将SP代码提取到文件中,然后使用Windiff之类的工具。
或者,如果您必须在数据库中执行此操作,请查看these tools。
将来,将您的SP脚本放入源代码控制中。您可以对更改进行分支和合并。
https://stackoverflow.com/questions/945325
复制相似问题