SQL Server教程之读取第三方数据库中的数据


  本文标签:SQL Server教程

  此文主要向大家讲述的是SQL Server教程之读取第三方数据库中的相关数据的实际操作步骤  。以及对其实际操作中值得我们大家注意的相关事项的具体描述,以下就是文章的主要内容的描述  。

现在需要在一台服务器(A)上的数据库(Master)里访问另外一台服务器(B)的另外两个数据库(NZ 和 AU)  。AU 和 NZ 是网站的部分实时数据,目前某一步操作的REPLICATION方案是从服务器B到A,AU / NZ 的表结构同Master 数据结构基本一致  。

  这样一来,当把AU Replication 到 Master 后,在把 NZ Replication 到 Master , Master 里的就只剩 NZ 的数据了  。反过来就只有AU的了,具体的Replication 是怎么一回事,我也不懂,也没有细看  。

  如果能在Master 里直接操作 AU 和 NZ 就好了  。

  SQLServer 有函数:

  OPENROWSET 和 OPENDATASOURCE

  这两个函数不但能实现从另外的数据库读数据,而且还能从EXCEL、TXT, ORACLE, ODBC 等读数据  。

  启用Ad Hoc Distributed Queries:

  

  1. exec sp_configure ’show advanced options’,1  
  2. reconfigure  
  3. exec sp_configure ’Ad Hoc Distributed Queries’,1  
  4. reconfigure  
  5. SELECT *  
  6. FROM OPENDATASOURCE(  
  7. ’SQLOLEDB’,  
  8. ’Data Source=SQLServerName;User ID=sa;Password=xxx’  
  9. ).Help.dbo.Help_Category  

  或

  

  1. select * from openrowset( ’SQLOLEDB ’, ’SQLServerName’; ’sa’; ’xxx’, Help.dbo.Help_Category )  
  2. 关闭Ad Hoc Distributed Queries:  
  3. exec sp_configure ’Ad Hoc Distributed Queries’,0  
  4. reconfigure  
  5. exec sp_configure ’show advanced options’,0  
  6. reconfigure  

  但是,这样写着有点复杂,而且不便于维护,假如数据库密码改变了,就需要把一个一个把密码改正  。

  Oracle 里有 DB Link, 而且语法非常简洁  。

  查了一下帮助,SQLServer教程 里有 “链接服务器” 这个东东  。要创建 链接服务器需要用到SQLServer 的一个系统存储过程:

  

  1. sp_addlinkedserver [ @server= ] ’server’ [ , [ @srvproduct= ] ’product_name’ ]  
  2. [ , [ @provider= ] ’provider_name’ ]  
  3. [ , [ @datasrc= ] ’data_source’ ]  
  4. [ , [ @location= ] ’location’ ]  
  5. [ , [ @provstr= ] ’provider_string’ ]  
  6. [ , [ @catalog= ] ’catalog’ ]  
  7. exec sp_addlinkedserver @server= ’XLING’ , @srvproduct = ”, @provider = ’SQLNCLI’ , @datasrc = ’SQLServerName2′  

  执行后,可以在 Sqlserver Management Studio 的对象资源管理器里的 服务器对象 -》 链接服务器 里看到看这个 XLING

  然后就可以用:

  

  1. SELECT * FROM XLING.PricemeHelp.dbo.Help_Category  

  这里的XLING就是指向数据库SQLServerName2的链接服务器,从上面的SELECT可以看出,写的依然复杂  。

  SQLServer 也有,而且语法差不多:

  

  1. CREATE SYNONYM dbo.Help_Category_NZ FOR XLING.PricemeHelp.dbo.Help_Category 

  执行后,就可以用:

  

  1. SELECT * FROM Help_Category_NZ 

  了!

  上述的相关内容就是对SQL Server教程之读取第三方数据库中的相关数据的描述,希望会给你带来一些帮助在此方面  。