我现在面临的存储过程(数据库可移植性等)的所有缺点。我们将把我们的VB.Net/ASP/SQL Server应用程序迁移到像Mono / Postgresql这样的东西并完全国际化。
我们面临的众多问题之一是我们有800-900个存储过程。我们正在考虑做的是将这些SP中的逻辑移动到应用程序代码中。我一直在寻找人们如何做到这一点或如何做到这一点,但我发现很少。关于存储过程的大部分信息都是关于它们应该包含在内的等等。所以我得出的结论是,解决这个问题的最佳方法是将SQL检索/更新类型查询保留为存储过程并移动具有业务逻辑的查询。进入申请表。
所以我的问题是采取这样做的最佳方法是什么(可能没有最好的方法,但是从哪里开始的建议会很好)?
由于 利安
答案 0 :(得分:1)
由于存储过程提供了数据库的接口,因此您现在需要确保对存储过程的所有调用都使用相同的客户端代码。如果您当前从应用程序中的多个位置,甚至多个应用程序(可能是多模式)调用SP,则它们都需要通过公共代码。首先,我要确保从客户端库中的一个位置调用每个SP。然后,来自存储过程的所有逻辑将被该方法调用封装。如果存储过程使用事务来确保复杂操作的完整性,那么现在需要在应用程序库中启动和提交这些事务。
重构最终是必要的,即使您无法移植所有SP,也会有好处。
答案 1 :(得分:0)