动态存储过程在不同的SQL服务器中?

问题描述:

我的客户希望从应用程序中更改服务器,我的意思是从应用程序中输入新的SQL服务器名称,并在SQL服务器数据库表中搜索关键字。我有存储生产者,这对一个SQL服务器工作正常。动态存储过程在不同的SQL服务器中?

如果客户端在应用程序级别更改SQL Server名称,则应用程序中的我的连接字符串将不起作用。因为我使用的连接字符串中的数据库可用于一台服务器。

我该如何处理这种情况? 。无论如何sp会是动态的吗? P

+0

不允许他们更改服务器?为什么要这么做?我想你可以为数据库创建一个镜像。 – swasheck 2013-03-12 18:12:31

+0

客户端想要在不同的服务器中搜索关键字。 – James123 2013-03-12 18:23:47

+0

哇。然后,您需要让您的应用程序知道要检查哪个服务器,并根据客户端选择的服务器动态更改'SqlConnection'属性。您可以将两台服务器作为连接字符串存储在配置文件中,并在构建连接时引用相应的服务器。 – 2013-03-12 18:25:17

那么在一台服务器上,你可以创建一个指向另一台服务器的synonym。假设你已经链接的服务器,上Server1

CREATE SYNONYM dbo.ProcedureName FOR Server2_Linked.DatabaseName.dbo.ProcedureName; 

现在,当应用程序调用dbo.ProcedureNameServer1,不知情的话,它实际上是执行上Server2

如果这不是你想要的,我想你必须详细阐述你的问题。

+0

Myservers无法链接对方。我的意思是没有定义。我需要检查SP是否存在于我的服务器上,如果没有创建新的数据库并执行它。 – James123 2013-03-12 18:10:00

+1

什么将生成此存储过程的代码?你的意思是你希望你的应用程序在一台服务器上尝试执行一个存储过程,但是如果它没有在那里找到它,那么从另一台服务器获取存储过程定义并创建它,然后执行它?这听起来不像你的应用*应该做的事情。如果你需要两个地方的存储过程,*你*现在应该这样做。 – 2013-03-12 18:12:38

+0

例如,您可以备份数据库,在新服务器上恢复数据库,更新连接字符串,擦拭双手并祝他们好运。 – 2013-03-12 18:14:15