小编Ben*_*ter的帖子

如何针对同一个数据库运行多个并发版本的应用程序?

背景:我的应用程序有多个并发版本在我的生产环境中运行。根据所使用的用户帐户,用户将有权访问不同版本的软件。

环境:目前是SQL Server 2005,即将迁移到SQL Server 2008,ASP.Net

问题:软件的每个版本可能使用也可能不使用与数据库中的数据交互的存储过程的不同版本。当前,当版本更改时,更改它的人会创建一个新副本并在末尾附加一个增量版本号。在这一点上,我们有一些存储过程的多个版本,而其他版本只有一个版本,没有人确定应用程序的哪个版本指向存储过程的哪个版本——这是一团糟。

我正在寻找一种解决方案,它将为任何给定版本的应用程序整齐地打包存储的过程,以用作新版本的基础。这意味着新版本的应用程序可以指向一组新的 procs,这些 procs 可以重写或修改为最终用户的内容,而不会影响当前生产中可用的其他版本的应用程序。

我最初考虑的是模式,但问题的一部分是 procs 与其他 procs 和用户定义的函数紧密耦合,所以当复制到另一个模式时,我们新来映射和替换所有这些并不理想的链接. 有没有办法编写 procs,以便将它们移动到另一个模式会带来它们之间的关系,例如,如果 Schema1.Proc1 引用了 Schema1.Proc2 并且我们将它们复制到 Schema2.Proc1 现在将引用的 Schema2 Schema2.Proc2 无需做任何额外的工作?在必须通过 SchemaX.Func1() 引用函数的情况下,这将如何处理用户定义的函数?如果我可以在不定义函数所属模式的情况下以与存储过程相同的方式引用该函数,那将会很方便,但我不

似乎这是一个应该已经解决的问题,但我不知道我在寻找什么才能找到可行的解决方案。

有没有人有任何想法?

sql-server-2005 sql-server-2008 sql-server

6
推荐指数
1
解决办法
1961
查看次数