Sql 创建链接的服务器和数据库别名

Sql 创建链接的服务器和数据库别名,sql,sql-server,linked-server,Sql,Sql Server,Linked Server,我有两台服务器Server1和Server2 在这两台服务器上,我都有一个名为QAI的数据库 是否有一种方法可以使用从Server2到Server1的别名创建链接服务器,而不是 Server1.QAI.dbo.tbBlah 把它化名为 QAI.dbo.tbBlah 这是需要的,因为server2上的QAI DB出现故障,并且需要在修复Server1实例时返回到Server1实例 谢谢恐怕这是不可能的,您必须始终明确地引用Server1。 但是,如果您的应用程序在服务器上,而不是在许多客户端上,因

我有两台服务器Server1和Server2

在这两台服务器上,我都有一个名为QAI的数据库

是否有一种方法可以使用从Server2到Server1的别名创建链接服务器,而不是 Server1.QAI.dbo.tbBlah

把它化名为 QAI.dbo.tbBlah

这是需要的,因为server2上的QAI DB出现故障,并且需要在修复Server1实例时返回到Server1实例


谢谢

恐怕这是不可能的,您必须始终明确地引用Server1。
但是,如果您的应用程序在服务器上,而不是在许多客户端上,因此使用点数量有限,您可以在那里修改连接字符串,这样应用程序将临时引用server1而不是server2。

如果您在查询表时不想指定数据库名称,可以为其创建同义词

CREATE SYNONYM [dbo].[DimProduct]
FOR
[AdventureWorksDW].[dbo].[DimProduct]

这将在您的同义词文件夹中创建DimProduct

此操作有效。在SQL2012上测试

将SQL链接服务器添加到特定主机没有问题 运行它。但是如果您需要给它一个别名,而不是使用 主机名作为链接服务器名?以下是如何做到这一点:

1) 第一步:
•在SQL Server Management Studio中打开链接服务器,然后“新建链接服务器” 服务器“。
•在向导内部–选择常规选项卡。
•在“链接服务器”字段中指定别名。
•选择SQL本机客户端作为提供程序。
•在“产品名称”字段中添加sql_server(这是一个神奇之处)。
•在“数据源”中–指定要用作链接服务器的主机的名称

2) 第二步:
•在安全选项卡中–指定适当的安全选项(例如安全上下文)

3) 第三步:
•在服务器选项选项卡中–将“数据访问”、“RPC输出”和“使用远程协作”设置为true

4) 第四步:
•享受


你有没有找到解决这个问题的好方法?注意同义词必须指向低级对象;不能为数据库或架构创建同义词。如果Server1.QAI中有42个不同的表,则必须创建42个同义词,并在添加对象时对其进行维护。欢迎使用堆栈溢出!虽然这在理论上可以回答这个问题,但在这里包括答案的基本部分,并提供链接供参考。