gpt4 book ai didi

SQL Server 链接数据库别名

转载 作者:行者123 更新时间:2023-12-02 09:51:57 25 4
gpt4 key购买 nike

是否可以不仅拥有LinkedServer,还可以拥有链接的数据库和服务器?我的情况是拥有一个具有以下设置的环境:

ServerX:DatabaseOne, 数据库二

以及另一个环境:

服务器Y:MyDatabaseOne, 我的数据库二

现在,DatabaseOne 和 MyDatabaseOne 完全相同,DatabaseTwo 和 MyDatabaseTwo 也是如此。我有一个存储过程,可以在给定服务器上执行从一个数据库到另一个数据库的一些基本表更新,并且我希望它能够在两个环境中工作。我已经设置了一个链接服务器,因此我的引用可以是:

MyLinkedServer.DatabaseOne.dbo.MyTable 或 MyLinkedServer.MyDatabaseOne.dbo.MyTable

即使这样,当我切换环境来更改数据库名称时,我也需要更改 SP,有没有办法设置数据库别名,以便我可以编写:

从 MyLinkedServer.MyLinkedDatabase.dbo.MyTable 选择 *

那么只要在每个环境中设置LinkedServer和(如果可能)LinkedDatabase,切换环境时SP就可以工作而无需更改?

最佳答案

您可以按照以下步骤给服务器起别名来避免动态 sql(归功于 this post )

1)第 1 步:

  • 在 SQL Server Management Studio 中打开链接服务器,然后打开“新建链接服务器”。
  • 在出现的向导中 - 选择“常规”选项卡。
  • 在“链接服务器”字段中指定别名。
  • 选择 SQL Native Client 作为提供程序。
  • 在“产品名称”字段中添加 sql_server(这就是神奇之处)。
  • 在“数据源”中 - 指定要用作链接服务器的主机的名称。

2)第2步:

  • 在“安全”选项卡中 - 指定适当的安全选项(例如安全上下文)

3)第3步:

  • 在“服务器选项”选项卡中 - 将“数据访问”、“RPC”、“RPC 输出”和“使用远程排序规则”设置为 true。

4)第 4 步:

  • 享受

您可以更进一步,在查询表时跳过指定数据库名称,您可以为每个对象创建同义词,如下所示:

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

这将在您的数据库中创建 DimProduct 同义词。据我所知,您无法创建数据库的同义词。

关于SQL Server 链接数据库别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4050331/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com