以下是我的架构详细信息:
schema_3中的某些过程从schema_1和schema_2访问资源(表,视图,sp)。
两个数据库上的schema_3中的所有过程均相同。如何从schema_3访问两个数据库的schema_1。
现在,我可以在过程中对DB_A进行硬编码,但是当我将代码移至客户端计算机时,由于DB_A可能不相同,这会造成问题(原因之一是客户端不正常,并且在同一台计算机上具有QA,Dev和Prod)。
第二种选择是获取DB_A名称作为参数,但是它将使所有schema_3 SP成为动态的(因为我没有任何方法可以访问@ DBName.schema_name.ResourceName之类的东西)。
第三种选择是创建链接服务器,由于与第一种原因相同,这也不能解决我的问题。
任何想法如何进行,我都不希望我的过程是动态的,只是因为其中80%是直接的。
编辑开始:
因此,我可以重述一下,因为我有多个数据库,其中一个数据库具有需要共享的资源(表/视图/模式),然后还有其他数据库(一个或多个)具有存储过程,这些过程可以计算来自共享数据库和自我的数据数据库。
共享数据库名称在所有环境中都不会保持不变,我想更改它们(特定于环境)。我提出了一个解决方案,其中我将为所有共享资源创建同义词,并且所有过程都将使用它们,这样,它们都将引用第一个数据库中的共享资源。
对于每个安装,我需要修改同义词定义以反映正确的共享数据库名称。数据库名称是否有任何SYNONYM,这样我就可以处理更少的同义词。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句