SQL Server 2012创建链接服务器查询

概述

在SQL Server中,链接服务器(Linked Server)是指将一个数据库服务器连接到另一个数据库服务器的过程。通过链接服务器,我们可以在一个数据库服务器上访问另一个数据库服务器中的数据和对象。本文将教会刚入行的小白如何在SQL Server 2012中创建链接服务器并进行查询操作。

流程

下面是整个流程的简要步骤:

步骤 内容
1 创建链接服务器
2 配置链接服务器属性
3 创建本地服务器上的登录账号
4 创建链接服务器上的登录账号
5 测试链接服务器连接
6 在查询中使用链接服务器

接下来,让我们一步步详细介绍每个步骤需要做的事情。

1. 创建链接服务器

首先,我们需要在本地服务器上创建链接服务器。使用以下代码创建名为"LinkedServer"的链接服务器:

EXEC sp_addlinkedserver 
     @server = N'LinkedServer',
     @srvproduct = N'',
     @provider = N'SQLNCLI',
     @datasrc = N'LinkedServerName';
  • @server:链接服务器的名称。
  • @srvproduct:链接服务器的产品名称,留空即可。
  • @provider:链接服务器的提供程序,这里使用'sqlncli'表示使用SQL Server Native Client。
  • @datasrc:链接服务器的名称或IP地址。

2. 配置链接服务器属性

接下来,我们需要配置链接服务器的属性。使用以下代码设置链接服务器的RPC和RPC Out属性:

EXEC sp_serveroption 
     @server = N'LinkedServer',
     @optname = N'rpc',
     @optvalue = N'true'
EXEC sp_serveroption 
     @server = N'LinkedServer',
     @optname = N'rpc out',
     @optvalue = N'true'

这些属性将允许在链接服务器上执行RPC(远程过程调用)和RPC Out(从链接服务器返回结果)操作。

3. 创建本地服务器上的登录账号

在链接服务器上执行查询操作需要使用登录账号进行身份验证。使用以下代码在本地服务器上创建登录账号:

USE [master]
GO
CREATE LOGIN [LinkedServerLogin] 
     WITH PASSWORD=N'YourPassword', 
     DEFAULT_DATABASE=[YourDatabase], 
     CHECK_EXPIRATION=OFF, 
     CHECK_POLICY=OFF;
GO
  • [LinkedServerLogin]:登录账号的名称。
  • N'YourPassword':登录账号的密码。
  • [YourDatabase]:登录账号的默认数据库。

4. 创建链接服务器上的登录账号

同样地,我们也需要在链接服务器上创建登录账号。使用以下代码在链接服务器上创建登录账号:

USE [LinkedServerDatabase]
GO
CREATE USER [LinkedServerLogin] FOR LOGIN [LinkedServerLogin] WITH DEFAULT_SCHEMA=[dbo]
GO
  • [LinkedServerDatabase]:链接服务器的数据库名称。
  • [LinkedServerLogin]:登录账号的名称。

5. 测试链接服务器连接

在进行查询操作之前,我们需要测试链接服务器的连接是否正常。使用以下代码测试链接服务器的连接:

SELECT * FROM [LinkedServer].[LinkedServerDatabase].[dbo].[LinkedServerTable]

如果代码能够成功执行,即表示链接服务器连接正常。

6. 在查询中使用链接服务器

现在我们可以在查询中使用链接服务器查询数据了。使用以下代码查询链接服务器中的数据:

SELECT * FROM [LinkedServer].[LinkedServerDatabase].[dbo].[LinkedServerTable]
  • [LinkedServer]:链接服务器的名称。
  • [LinkedServerDatabase]:链接服务器的数据库名称。
  • [LinkedServerTable]:链接服务器中的表名。

序列图

下面是创建链接服务器查询的序列图:

sequenceDiagram
    participant Dev as Developer
    participant Newbie as Newbie
    participant LocalServer as Local SQL Server
    participant LinkedServer as Linked Server

    Newbie->>Dev: 如何创建链接服务器查询?
    Dev->>Newbie: 首先,需要创建链接服务器
    Dev->>LocalServer: EXEC sp_addlinkedserver ... 
    Note over LocalServer: 创建链接服务器
    LocalServer-->>Dev: 操作成功
    Dev->>Newbie: 然后,需要配置链接服务器属性
    Dev->>LocalServer: EXEC sp_serveroption