SQL Server 跨域访问

# SQL Server 跨服务器访问数据

参考链接:

[sp_addlinkedserver](https://msdn.microsoft.com/zh-cn/library/ms190479.aspx)

[sp_addlinkedsrvlogin](https://msdn.microsoft.com/zh-cn/library/ms189811.aspx)

> 需求:两个一模一样的表,分别分布在两个服务器的数据库上,现在要在一个表中,查看这两个表的内容
 
1. 在本地数据库查询分析器中,运行以下两段语句:

```sql
-- 创建链接服务器
exec sp_addlinkedserver
  @server = 'rmtsrvname',        -- 给要链接的服务器取的别名,也可以用下面的 IP 地址
  @srvproduct = '',              --
  @provider = 'SQLOLEDB',        -- 不需要修改
  @datasrc = '192.168.1.1'       -- 需要连接的服务器IP,如果链接服务器数据库有添加端口号的话,就要改成 '192.168.1.1,端口号'          

-- 登录链接服务器
exec sp_addlinkedsrvlogin
  'rmtsrvname',                  -- 上面取的服务器别名
  'false',
  NULL,
  'username',                    -- 帐号,可以是服务器上某个数据库的用户,不一定要 sa
  'password'                     -- 密码
```

2. 联合查询

```sql
select id, a, b
from table1
  union(select id, a, b from [rmtsrvname].[dbname].dbo.table1 as table2)
order by id
```

 

posted @ 2017-02-22 13:28  Highflyer  阅读(846)  评论(0编辑  收藏  举报