SQL Server链接其他数据库服务器的方法

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介:
+关注继续查看
在实际应用中经常碰到要对两个数据库(不在同一台主机上)进行关联操作,在Oracle中提供了这种机制,可以链接其他主机上的Oracle数据库。
同样的在SQL Server2005中也可以链接到其他的SQL Server数据库,并且通过Ole DB还可以链接到Oracle、Sybase等其他不同的数据库,方便用户的操作和维护。

在Microsoft SQL Server Management Studio的工具中提供了图形界面的操作:

 不过其中的一些参数的填写比较麻烦,我这里就以链接SQL Server和Oracle为例说一下
(命令的方式,只列出最简单的命令,对一些可有可无的属性的设置我把它去掉了)

1、链接SQL Server 数据库
这个是相对简单的。参见如下的sql语句
None.gifUSE [master]
None.gifGO
None.gifEXEC master.dbo.sp_addlinkedserver @server 
= N'DBSERVER', @srvproduct=N'SQL Server'
None.gifGO
None.gifUSE [master]
None.gifGO
None.gifEXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname 
= N'DBSERVER', @locallogin = N'sa', @useself = N'False', @rmtuser = N'sa', @rmtpassword = N'1'
None.gifGO
主要就是调用了两个存储过程:
sp_addlinkedserver是加入数据库链接,其中server的参数是另外一台SQL Server服务器的名称
sp_addlinkedsrvlogin是加入对应的远程数据库的用户名,rmtuser和rmtpassword是远程数据库的用户名和密码

下面就可以直接在本地查询远程数据库的表了:
None.gif select * from [DBSERVER].[helpdesk].[dbo].[Messages];

2、链接Oracle数据库
要链接Oracle数据库,首先要在本地安装Oracle的客户端,并且配置好Oracle的别名(别名的配置我这里就不多说了,很简单的)
然后同样的调用上面的两个存储过程:
None.gifUSE [master]
None.gifGO
None.gifEXEC master.dbo.sp_addlinkedserver @server 
= N'GSPRING', @srvproduct=N'Oracle', @provider=N'MSDAORA', @datasrc=N'gspring'
None.gifGO
None.gifUSE [master]
None.gifGO
None.gifEXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname 
= N'GSPRING', @locallogin = N'sa', @useself = N'False', @rmtuser = N'user1', @rmtpassword = N'1'
None.gifGO
其中server是链接数据库的名称,datasrc是本地配置的oracle的别名。

下面就可以直接在本地查询远程oracle数据库的表了:
None.gifselect * from [GSPRING]..[user1].[table1];
其中user1是table1表的owner
要注意的就是SqlServer中访问一张表的全路径是四层,那么访问oracle时对于没有的要用一个空的.代替

其他:
1、本地配置的所有链接可以在sysservers表中查到:
None.gifselect * from sys.sysservers;

2、访问远程数据库表时也可以先在本地建一个同义词,然后就可以像在本地一样的访问了:
None.gifUSE [master]
None.gifGO
None.gifCREATE SYNONYM [dbo].[linktable] FOR [DBSERVER].[helpdesk].[dbo].[Messages];
None.gifGO
None.gif
None.gifselect 
* from linktable;

3、在配置oracle时如果出现其他错误,请参见微软的解决方案(我配置过程中一个问题都没有出现,难道是我RP太好了03.gif):http://support.microsoft.com/kb/280106/zh-cn



    本文转自永春博客园博客,原文链接:http://www.cnblogs.com/firstyi/archive/2007/08/09/849494.html,如需转载请自行联系原作者

相关实践学习
使用交互方式创建数据表
本次实验主要介绍如何在RDS-SQLServer数据库中使用交互方式创建数据表。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
1天前
|
SQL 关系型数据库 MySQL
SQL Server重置自增的值为0
SQL Server重置自增的值为0
13 0
|
1天前
|
SQL 关系型数据库 Apache
Microsoft SQL Server 迁移到 PostgreSQL 利器:Babelfish
Babelfish for PostgreSQL 加速了将 Microsoft SQL Server 应用程序迁移到 PostgreSQL 的旅程。Babelfish for PostgreSQL 是一个开源项目,可在 Apache 2.0 和 PostgreSQL 许可下使用。它使 PostgreSQL 能够理解来自 Microsoft SQL Server 编写的应用程序的查询。Babelfish 了解 SQL Server 有线协议和 Microsoft SQL Server 查询语言 T-SQL,此您不必切换数据库驱动程序或重新编写所有应用程序查询。
167 0
|
1天前
|
SQL 数据库
SQL Server 数据查询
SQL Server 数据查询
59 0
|
1天前
|
SQL 数据库 数据安全/隐私保护
SQL Server 数据操控,视图和索引
SQL Server 数据操控,视图和索引
68 0
|
1天前
|
SQL 存储 Go
SQL Server 创建与管理数据库实验报告
SQL Server 创建与管理数据库实验报告
17 1
|
1天前
|
SQL Go 数据库
SQL Server创建及修改表实验报告(下)
SQL Server创建及修改表实验报告(上)
17 0
|
1天前
|
SQL 数据库 Python
SQL Server创建及修改表实验报告(上)
SQL Server创建及修改表实验报告
28 1
|
1天前
|
SQL 数据库
SQL Server 创建和管理数据表
SQL Server 创建和管理数据表
25 1
|
1天前
|
SQL 数据库
SQL Server 连接查询和子查询
SQL Server 连接查询和子查询
54 0
|
1天前
|
SQL 数据库
SQL Server 单表数据查询
SQL Server 单表数据查询
69 1
推荐文章
更多