SQL Server教程:读取第三方数据库的数据
2010-04-24 20:56
211 查看
作者: cnd8, 出处:IT专家网论坛, 责任编辑: 陈子琪, 2010-04-21 13:00 现在需要在一台服务器(A)上的数据库(Master)里访问另外一台服务器(B)的另外两个数据库(NZ 和 AU)。AU 和 NZ 是网站的部分实时数据,目前某一步操作的REPLICATION方案是从服务器B到A,AU / NZ 的表结构同Master 数据结构基本一致。 现在需要在一台服务器(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: exec sp_configure 'show advanced options',1 reconfigure exec sp_configure 'Ad Hoc Distributed Queries',1 reconfigure SELECT * FROM OPENDATASOURCE( 'SQLOLEDB', 'Data Source=SQLServerName;User ID=sa;Password=xxx' ).Help.dbo.Help_Category 或 select * from openrowset( 'SQLOLEDB ', 'SQLServerName'; 'sa'; 'xxx', Help.dbo.Help_Category ) --关闭Ad Hoc Distributed Queries: exec sp_configure 'Ad Hoc Distributed Queries',0 reconfigure exec sp_configure 'show advanced options',0 reconfigure 但是,这样写着有点复杂,而且不便于维护,假如数据库密码改变了,就需要把一个一个把密码改正。 Oracle 里有 DB Link, 而且语法非常简洁。 查了一下帮助,SQLServer 里有 "链接服务器" 这个东东。要创建 链接服务器需要用到SQLServer 的一个系统存储过程: sp_addlinkedserver [ @server= ] 'server' [ , [ @srvproduct= ] 'product_name' ] [ , [ @provider= ] 'provider_name' ] [ , [ @datasrc= ] 'data_source' ] [ , [ @location= ] 'location' ] [ , [ @provstr= ] 'provider_string' ] [ , [ @catalog= ] 'catalog' ] exec sp_addlinkedserver @server= 'XLING' , @srvproduct = '', @provider = 'SQLNCLI' , @datasrc = 'SQLServerName2'
现在需要在一台服务器(A)上的数据库(Master)里访问另外一台服务器(B)的另外两个数据库(NZ 和 AU)。AU 和 NZ 是网站的部分实时数据,目前某一步操作的REPLICATION方案是从服务器B到A,AU / NZ 的表结构同Master 数据结构基本一致。
执行后,可以在 Sqlserver Management Studio 的对象资源管理器里的 服务器对象 -》 链接服务器 里看到看这个 XLING
然后就可以用:
这里的XLING就是指向数据库SQLServerName2的链接服务器,从上面的SELECT可以看出,写的依然复杂。
SQLServer 也有,而且语法差不多:
CREATE SYNONYM dbo.Help_Category_NZ FOR XLING.PricemeHelp.dbo.Help_Category
执行后,就可以用:
SELECT * FROM Help_Category_NZ
现在需要在一台服务器(A)上的数据库(Master)里访问另外一台服务器(B)的另外两个数据库(NZ 和 AU)。AU 和 NZ 是网站的部分实时数据,目前某一步操作的REPLICATION方案是从服务器B到A,AU / NZ 的表结构同Master 数据结构基本一致。
执行后,可以在 Sqlserver Management Studio 的对象资源管理器里的 服务器对象 -》 链接服务器 里看到看这个 XLING
然后就可以用:
SELECT * FROM XLING.PricemeHelp.dbo.Help_Category |
SQLServer 也有,而且语法差不多:
CREATE SYNONYM dbo.Help_Category_NZ FOR XLING.PricemeHelp.dbo.Help_Category
执行后,就可以用:
SELECT * FROM Help_Category_NZ
相关文章推荐
- sql server 数据库备份 与 读取xml 数据
- ios 通过第三方FMDB来读取db数据库的数据
- C# 读取EXCEL中的数据并存入SQL Server 2005数据库
- C# 连接SQL Server 数据库的 读取数据的基本原理方法
- Visual C# 动态操作 SQL Server 数据库实例教程:通用数据访问类(SqlHelper)
- SQL Server 2008中的新日期数据类型-Mssql数据库教程
- Sql Server 数据库教程四 、数据类型约束
- SQL 教程数据库包括:Oracle, Sybase, SQL Server, DB2, Access 等等,您将学到如何使用 SQL 访问和处理数据系统中的数据
- Spring boot傻瓜教程(二):从数据库里读取数据,返回Json
- ADO.NET基础实战 从文件读取数据插入到数据库
- hive读取关系型数据库数据
- ios开发中数据库读取数据牵涉到的日期处理:前一天、今天、后天、一周等
- Realm数据库使用教程(三):查询数据
- Realm数据库使用教程(五):删除数据
- MapX从数据库读取数据形成新图层【转载】
- SQL Server创建数据库和数据表的相关约束实现方法
- SQL server 2008 数据库企业版安装教程图解
- Visual C# 2008+SQL Server 2005 数据库与网络开发-- 7.3 使用ADO .NET处理数据
- SimpleDriverDataSource JdbcTemplate 连接数据库oracle并读取数据
- Visual C# 2008+SQL Server 2005 数据库与网络开发--8.2.2 用户数据操作的并发