zoukankan      html  css  js  c++  java
  • 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状态码
    firefox浏览器新建页面一直处于刷新状态解决方法
    firefox浏览器需要新建窗口时以新建标签页代替
    bash基础教程
    sqoop的导入|Hive|Hbase
    sqoop导出数据|Hive|HDFS和脚本编写
    sqoop安装
    sqoop简介和原理分析
    Oozie安装
    Oozie框架介绍
  • 原文地址:https://www.cnblogs.com/zwei1121/p/849658.html
Copyright © 2011-2022 走看看