我知道您可以使用 SSMS 中的 GUI来指定要运行的服务器。
有没有一种请求特定服务器的方法,类似于在查询脚本中说“使用 ServerA.[DBName] ”?
我知道您可以使用 SSMS 中的 GUI来指定要运行的服务器。
有没有一种请求特定服务器的方法,类似于在查询脚本中说“使用 ServerA.[DBName] ”?
很确定这是不可能的。(就像我们更改数据库名称所做的那样 USE [db_name]
)
但是,有一种技术Linked Server
允许您在查询中连接到第二个服务器并使用第二个数据源上的资源。
有关详细信息,请参阅此链接http://msdn.microsoft.com/en-us/library/ms188279.aspx
例如:
select foo.id
from db1.table1 foo,
Server2.db_name.scheman_name.table_name bar
where foo.name=bar.name
另一个答案(OpenDataSource)中提到的是:
作为四部分对象名称的一部分的即席连接信息,而不使用链接服务器名称。
这几乎是一个隐含的Linked Server
Using OpenDataSource might be a way to set which server instance to access within the scope of a query - you may want to consult this SO question for more background/details.
Another option might be a TRY..CATCH
block where the query verifies that it's being run on the correct server using SERVERPROPERTY()
, and throws an exception if it isn't - this lets you put a more human-readable error message out for the user.