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

简介:
在实际应用中经常碰到要对两个数据库(不在同一台主机上)进行关联操作,在Oracle中提供了这种机制,可以链接其他主机上的Oracle数据库。
同样的在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
主要就是调用了两个存储过程:
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的别名。

下面就可以直接在本地查询远程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;

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



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

相关文章
|
7月前
|
存储 Oracle 关系型数据库
服务器数据恢复—光纤存储上oracle数据库数据恢复案例
一台光纤服务器存储上有16块FC硬盘,上层部署了Oracle数据库。服务器存储前面板2个硬盘指示灯显示异常,存储映射到linux操作系统上的卷挂载不上,业务中断。 通过storage manager查看存储状态,发现逻辑卷状态失败。再查看物理磁盘状态,发现其中一块盘报告“警告”,硬盘指示灯显示异常的2块盘报告“失败”。 将当前存储的完整日志状态备份下来,解析备份出来的存储日志并获得了关于逻辑卷结构的部分信息。
|
8月前
|
人工智能 运维 关系型数据库
数据库运维:mysql 数据库迁移方法-mysqldump
本文介绍了MySQL数据库迁移的方法与技巧,重点探讨了数据量大小对迁移方式的影响。对于10GB以下的小型数据库,推荐使用mysqldump进行逻辑导出和source导入;10GB以上可考虑mydumper与myloader工具;100GB以上则建议物理迁移。文中还提供了统计数据库及表空间大小的SQL语句,并讲解了如何使用mysqldump导出存储过程、函数和数据结构。通过结合实际应用场景选择合适的工具与方法,可实现高效的数据迁移。
1413 1
|
6月前
|
存储 关系型数据库 MySQL
MySQL数据库中进行日期比较的多种方法介绍。
以上方法提供了灵活多样地处理和对比MySQL数据库中存储地不同格式地日子信息方式。根据实际需求选择适当方式能够有效执行所需操作并保证性能优化。
663 10
|
7月前
|
SQL Oracle 关系型数据库
比较MySQL和Oracle数据库系统,特别是在进行分页查询的方法上的不同
两者的性能差异将取决于数据量大小、索引优化、查询设计以及具体版本的数据库服务器。考虑硬件资源、数据库设计和具体需求对于实现优化的分页查询至关重要。开发者和数据库管理员需要根据自身使用的具体数据库系统版本和环境,选择最合适的分页机制,并进行必要的性能调优来满足应用需求。
383 11
|
7月前
|
Oracle 关系型数据库 数据库
数据库数据恢复—服务器异常断电导致Oracle数据库报错的数据恢复案例
Oracle数据库故障: 某公司一台服务器上部署Oracle数据库。服务器意外断电导致数据库报错,报错内容为“system01.dbf需要更多的恢复来保持一致性”。该Oracle数据库没有备份,仅有一些断断续续的归档日志。 Oracle数据库恢复流程: 1、检测数据库故障情况; 2、尝试挂起并修复数据库; 3、解析数据库文件; 4、导出并验证恢复的数据库文件。
|
9月前
|
SQL 数据采集 关系型数据库
实现MySQL与SQL Server之间数据迁移的有效方法
总的来说,从MySQL到SQL Server的数据迁移是一个涉及到很多步骤的过程,可能会遇到各种问题和挑战。但只要精心规划、仔细执行,这个任务是完全可以完成的。
654 18
|
9月前
|
存储 算法 Java
实现不同数据库的表间的 JOIN 运算的极简方法
跨库计算是数据分析中的常见难题,尤其涉及多数据库系统时,表间 JOIN 操作复杂度显著提升。esProc 提供了一种高效解决方案,能够简化跨库 JOIN 的实现。例如,在车辆管理、交管和公民信息系统中,通过 esProc 可轻松完成如下任务:按城市统计有车公民事件数量、找出近一年获表彰的车主信息,以及按年份和品牌统计车辆违章次数。esProc 支持不同关联场景(如维表关联与主子表关联)的优化算法,如内存索引、游标处理和有序归并,从而大幅提升编码和运算效率。无论是同构还是异构数据源,esProc 均能灵活应对,为复杂数据分析提供强大支持。
|
10月前
|
Oracle 安全 关系型数据库
【Oracle】使用Navicat Premium连接Oracle数据库两种方法
以上就是两种使用Navicat Premium连接Oracle数据库的方法介绍,希望对你有所帮助!
2119 28
|
9月前
|
SQL Java 数据库连接
Java中实现SQL分页的方法
无论何种情况,选择适合自己的,理解了背后的工作原理,并能根据实际需求灵活变通的方式才是最重要的。
255 9
|
10月前
|
SQL 关系型数据库 MySQL
【MySQL】SQL分析的几种方法
以上就是SQL分析的几种方法。需要注意的是,这些方法并不是孤立的,而是相互关联的。在实际的SQL分析中,我们通常需要结合使用这些方法,才能找出最佳的优化策略。同时,SQL分析也需要对数据库管理系统,数据,业务需求有深入的理解,这需要时间和经验的积累。
354 12