Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 将存储过程迁移到应用程序中_Sql Server_Vb.net_Stored Procedures - Fatal编程技术网

Sql server 将存储过程迁移到应用程序中

Sql server 将存储过程迁移到应用程序中,sql-server,vb.net,stored-procedures,Sql Server,Vb.net,Stored Procedures,我现在面临的所有这些存储过程的缺点(数据库可移植性等)。我们将把我们的VB.Net/ASP/SQLServer应用程序迁移到Mono/Postgresql之类的应用程序,并完全国际化 我们面临的许多问题之一是我们有800-900个存储过程。我们想做的是将这些SP中的逻辑移到应用程序代码中。我四处寻找人们是如何做到这一点的,或者如何做到这一点的,但我发现的很少。关于存储过程的大部分信息都是关于存储过程中应该包含的内容等。因此,我得出结论,实现这一点的最佳方法是将SQL检索/更新类型查询保留为存储过

我现在面临的所有这些存储过程的缺点(数据库可移植性等)。我们将把我们的VB.Net/ASP/SQLServer应用程序迁移到Mono/Postgresql之类的应用程序,并完全国际化

我们面临的许多问题之一是我们有800-900个存储过程。我们想做的是将这些SP中的逻辑移到应用程序代码中。我四处寻找人们是如何做到这一点的,或者如何做到这一点的,但我发现的很少。关于存储过程的大部分信息都是关于存储过程中应该包含的内容等。因此,我得出结论,实现这一点的最佳方法是将SQL检索/更新类型查询保留为存储过程,并将具有业务逻辑的查询移到应用程序中

因此,我的问题是,在做这样的事情时,最好的方法是什么(可能没有最好的方法,但一些关于从哪里开始的建议会很好)

谢谢
Liam

由于存储过程提供了数据库接口,因此现在需要确保对存储过程的所有调用都指向相同的客户机代码。如果您当前从应用程序中的多个位置调用SP,或者甚至从多个应用程序(可能是多模式)调用SP,则它们都需要执行公共代码。首先,我要确保只从客户端库中的一个位置调用每个SP。然后,存储过程中的所有逻辑都将被该方法调用封装。如果存储的进程使用事务来确保复杂操作的完整性,那么现在需要在应用程序端库中启动和提交这些事务


重构最终是必要的,即使您无法移植所有SP,重构也会带来好处。

由于存储过程提供了数据库接口,因此您现在需要确保对存储过程的所有调用都指向相同的客户机代码。如果您当前从应用程序中的多个位置调用SP,或者甚至从多个应用程序(可能是多模式)调用SP,则它们都需要执行公共代码。首先,我要确保只从客户端库中的一个位置调用每个SP。然后,存储过程中的所有逻辑都将被该方法调用封装。如果存储的进程使用事务来确保复杂操作的完整性,那么现在需要在应用程序端库中启动和提交这些事务


重构最终是必要的,即使您无法移植所有SP,重构也会带来好处。

在将ASP.NET+SQL Server应用程序迁移到Postgres数据库时,我也遇到了同样的情况。 与其将SP迁移到应用程序代码中,不如将它们转换为等效的pl/pgsql函数。
您只需更改ADO.NET提供程序,而无需更改应用程序代码。有很多postgres(npgsql)提供程序将SP和postgres函数视为等效函数。

在将ASP.NET+SQL Server应用程序迁移到postgres数据库时,我也遇到了同样的情况。 与其将SP迁移到应用程序代码中,不如将它们转换为等效的pl/pgsql函数。
您只需更改ADO.NET提供程序,而无需更改应用程序代码。有很多postgres(npgsql)提供商将SP和postgres函数视为等效函数。

Hi Avinash,感谢您的回复。实际上,我已经将所有存储过程转换为Postgres函数。我认为我们应该将存储的进程合并到应用程序中的主要原因是,我们很可能会为我们的应用程序提供不同语言的多个数据库。因此,让数据库只存储数据会更容易管理。嗨,阿维纳什,谢谢你的回复。实际上,我已经将所有存储过程转换为Postgres函数。我认为我们应该将存储的进程合并到应用程序中的主要原因是,我们很可能会为我们的应用程序提供不同语言的多个数据库。因此,让数据库只存储数据将更容易管理。