当前位置: 首页 > 图文教程 > 数据库 > MSSQL > SQL Server的链接服务器技术小结

MSSQL
MS-sql 2005拒绝了对对象 ''xxx'' (数据库 ''xxx'',架构 ''dbo'')的 SELECT 权限的解决方法
MSSQL 2005 LOG备份webshell的方法
快速将珊瑚虫IP数据库转MS SQL2005的图文教程
sql2005 远程连接问题解决方法
SQLServer 2005 列所有存储过程的语句
SQL Server 2005 模板参数使用说明
Sql Server 2005 默认端口修改方法
SQL Sever 2005 Express 安装失败解决办法
sql2005 根据指定字段排序编号
监视SQLServer数据库镜像[图文]
sqlserver2008 拆分字符串
字符串聚合函数(去除重复值)
SQL Server 2005 同步复制技术
SqlServer2005 链接服务器用法
SQL2008中 阻止保存要求重新创建表的更改 的解决方法
sql rollup用法 小计汇总
SQLServer 2008 Merge语句的OUTPUT功能
SQLServer 2008 新增T-SQL 简写语法
SQL Server 2005“备份集中的数据库备份与现有的数据库不同”解决方法
SQL2005 学习笔记 公用表表达式(CTE)

MSSQL 中的 SQL Server的链接服务器技术小结


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 137 ::
收藏到网摘: n/a

一、使用 Microsoft OLE DB Provider For ODBC 链接MySQL 
  安装MySQL的ODBC驱动MyODBC
1、为MySQL建立一个ODBC系统数据源,例如:选择数据库为test ,数据源名称为myDSN
2、建立链接数据库
  EXEC sp_addlinkedserver @server = ’MySQLTest’, @srvproduct=’MySQL’,
  @provider = ’MSDASQL’, @datasrc = ’myDSN’
  GO
  EXEC sp_addlinkedsrvlogin
  @rmtsrvname=’MySqlTest’,@useself=’false’,@locallogin=’sa’,@rmtuser=’mys
  ql的用户名’,@rmtpassword=’mysql的密码’
3、查询数据
  SELECT * FROM OPENQUERY (MySQLTest ,’select * from 表’ )
  下面这个不行:
  SELECT * FROM OPENQUERY (MySQLTest ,’表’ )
  注意:不能直接用select * from 链接服务器名.数据库名.用户名.表(或视图)
  四部分名称查询数据,可能是个Bug.
二、使用 Microsoft OLE DB Provider For ORACLE 链接ORACLE
1、建立链接数据库
 sp_addlinkedserver ’别名’, ’Oracle’, ’MSDAORA’, ’服务名’
  GO
 EXEC sp_addlinkedsrvlogin @rmtsrvname=’别名 ’,@useself=’false’,@locallogin=’sa’,@rmtuser=’oracle用户名 ’,@rmtpassword=’密码’
2、查询数据
  SELECT * FROM 别名..用户名.表(视图)
  注意:四部分名称全部用大写
3、执行存储过程
  使用OPENQUERY:
  SELECT *
  FROM OPENQUERY(别名, ’exec 用户名.存储过程名’) 
    
三、设置链接服务器以访问格式化文本文件
  用于 Jet 的 Microsoft OLE DB 提供程序可用于访问并查询文本文件。
    若要直接创建访问文本文件的链接服务器而不将文件链接为 Access .mdb 文件中的表,请行 sp_addlinkedserver,如下例所示。
  提供程序是 Microsoft.Jet.OLEDB.4.0,提供程序字符串为"Text"。数据源是包含文本文件的目录的完整路径名称。schema.ini 文件(描述文本文件的结构)必须与此文本文件存在于相同的目录中。有关创建 schema.ini 文件的更多信息,请参见 Jet 数据库引擎文档。
  --Create a linked server.
  EXEC sp_addlinkedserver txtsrv, ’Jet 4.0’,
  ’Microsoft.Jet.OLEDB.4.0’,
  ’c:\data\distqry’,
  NULL,
  ’Text’
  GO
  --Set up login mappings.
  EXEC sp_addlinkedsrvlogin txtsrv, FALSE, NULL, Admin, NULL
  GO
  --List the tables in the linked server.
  EXEC sp_tables_ex txtsrv
  GO
  --Query one of the tables: file1#txt
  --using a 4-part name.
  SELECT *
  FROM txtsrv...[file1#txt]