SQL Server链接其他数据库服务器的方法
来源:互联网 发布:windows下的linux终端 编辑:程序博客网 时间:2024/06/06 14:25
在实际应用中经常碰到要对两个数据库(不在同一台主机上)进行关联操作,在Oracle中提供了这种机制,可以链接其他主机上的Oracle数据库。
同样的在SQL Server2005中也可以链接到其他的SQL Server数据库,并且通过Ole DB还可以链接到Oracle、Sybase等其他不同的数据库,方便用户的操作和维护。
在Microsoft SQL Server Management Studio的工具中提供了图形界面的操作:
不过其中的一些参数的填写比较麻烦,我这里就以链接SQL Server和Oracle为例说一下
(命令的方式,只列出最简单的命令,对一些可有可无的属性的设置我把它去掉了)
1、链接SQL Server 数据库
这个是相对简单的。参见如下的sql语句
sp_addlinkedserver是加入数据库链接,其中server的参数是另外一台SQL Server服务器的名称
sp_addlinkedsrvlogin是加入对应的远程数据库的用户名,rmtuser和rmtpassword是远程数据库的用户名和密码
下面就可以直接在本地查询远程数据库的表了:
2、链接Oracle数据库
要链接Oracle数据库,首先要在本地安装Oracle的客户端,并且配置好Oracle的别名(别名的配置我这里就不多说了,很简单的)
然后同样的调用上面的两个存储过程:
下面就可以直接在本地查询远程oracle数据库的表了:
要注意的就是SqlServer中访问一张表的全路径是四层,那么访问oracle时对于没有的要用一个空的.代替
其他:
1、本地配置的所有链接可以在sysservers表中查到:
2、访问远程数据库表时也可以先在本地建一个同义词,然后就可以像在本地一样的访问了:
3、在配置oracle时如果出现其他错误,请参见微软的解决方案(我配置过程中一个问题都没有出现,难道是我RP太好了):http://support.microsoft.com/kb/280106/zh-cn
同样的在SQL Server2005中也可以链接到其他的SQL Server数据库,并且通过Ole DB还可以链接到Oracle、Sybase等其他不同的数据库,方便用户的操作和维护。
在Microsoft SQL Server Management Studio的工具中提供了图形界面的操作:
不过其中的一些参数的填写比较麻烦,我这里就以链接SQL Server和Oracle为例说一下
(命令的方式,只列出最简单的命令,对一些可有可无的属性的设置我把它去掉了)
1、链接SQL Server 数据库
这个是相对简单的。参见如下的sql语句
USE [master]
GO
EXEC master.dbo.sp_addlinkedserver @server = N'DBSERVER', @srvproduct=N'SQL Server'
GO
USE [master]
GO
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'DBSERVER', @locallogin = N'sa', @useself = N'False', @rmtuser = N'sa', @rmtpassword = N'1'
GO
主要就是调用了两个存储过程:GO
EXEC master.dbo.sp_addlinkedserver @server = N'DBSERVER', @srvproduct=N'SQL Server'
GO
USE [master]
GO
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'DBSERVER', @locallogin = N'sa', @useself = N'False', @rmtuser = N'sa', @rmtpassword = N'1'
GO
sp_addlinkedserver是加入数据库链接,其中server的参数是另外一台SQL Server服务器的名称
sp_addlinkedsrvlogin是加入对应的远程数据库的用户名,rmtuser和rmtpassword是远程数据库的用户名和密码
下面就可以直接在本地查询远程数据库的表了:
select * from [DBSERVER].[helpdesk].[dbo].[Messages];
2、链接Oracle数据库
要链接Oracle数据库,首先要在本地安装Oracle的客户端,并且配置好Oracle的别名(别名的配置我这里就不多说了,很简单的)
然后同样的调用上面的两个存储过程:
USE [master]
GO
EXEC master.dbo.sp_addlinkedserver @server = N'GSPRING', @srvproduct=N'Oracle', @provider=N'MSDAORA', @datasrc=N'gspring'
GO
USE [master]
GO
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'GSPRING', @locallogin = N'sa', @useself = N'False', @rmtuser = N'user1', @rmtpassword = N'1'
GO
其中server是链接数据库的名称,datasrc是本地配置的oracle的别名。GO
EXEC master.dbo.sp_addlinkedserver @server = N'GSPRING', @srvproduct=N'Oracle', @provider=N'MSDAORA', @datasrc=N'gspring'
GO
USE [master]
GO
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'GSPRING', @locallogin = N'sa', @useself = N'False', @rmtuser = N'user1', @rmtpassword = N'1'
GO
下面就可以直接在本地查询远程oracle数据库的表了:
select * from [GSPRING]..[user1].[table1];
其中user1是table1表的owner要注意的就是SqlServer中访问一张表的全路径是四层,那么访问oracle时对于没有的要用一个空的.代替
其他:
1、本地配置的所有链接可以在sysservers表中查到:
select * from sys.sysservers;
2、访问远程数据库表时也可以先在本地建一个同义词,然后就可以像在本地一样的访问了:
USE [master]
GO
CREATE SYNONYM [dbo].[linktable] FOR [DBSERVER].[helpdesk].[dbo].[Messages];
GO
select * from linktable;
GO
CREATE SYNONYM [dbo].[linktable] FOR [DBSERVER].[helpdesk].[dbo].[Messages];
GO
select * from linktable;
3、在配置oracle时如果出现其他错误,请参见微软的解决方案(我配置过程中一个问题都没有出现,难道是我RP太好了):http://support.microsoft.com/kb/280106/zh-cn
0 0
- SQL Server链接其他数据库服务器的方法
- SQL Server链接其他数据库服务器的方法
- [SQL Server] 连接其他服务器上的数据库 AddLinkedServer
- [SQL Server] 连接其他服务器上的数据库 AddLinkedServer
- [SQL server]跨服务器链接数据库操作
- SQL SERVER 数据库链接服务器总结
- SQL SERVER 数据库链接服务器总结
- SQL SERVER 链接服务器
- 链接SQL Server服务器
- SQL-Server的链接服务器的应用
- SQL-Server的链接服务器的应用
- SQL SERVER访问Oracle数据库服务器的几种方法
- SQL Server 2005数据库引擎启动服务器的方法
- java语言连接sql server数据库(其他数据库通用)的两种方法
- SQL Server的链接服务器技术小结
- SQL Server的链接服务器技术小结
- SQL Server的链接服务器技术小结
- SQL Server的链接服务器技术小结
- Java中的继承
- iOS_获取通讯录数据
- Struts2.1注解配置问题
- jquery 执行Ajax的过程中触发的事件
- HTC宣告将开发云软件以增强品牌竞争力
- SQL Server链接其他数据库服务器的方法
- CentOS 6.3下PostgreSQL 的安装与配置
- java 中截取中文字符串的问题
- 软件开发遵循过程
- ubuntu的常用工具
- 怎样练习10000小时
- C++引用传递和值传递
- 双击返回键两次后退出
- HTML中input type="text"和type="password" 显示的长度不一样