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

MSSQL
SQL Server导入导出数据三种方式比较
SQL Server_8525引擎错误怎么办?
Sql Server的复制功能快速学习
汇总SQL Server 2000安装常见问题
存储过程实例:SQL Server Sa密码破解
SQL Server危险扩展删除与恢复详解
SQL Server注入的四种个人经验和技巧方法
SQL Server对上亿表的排序和join的问题解决
使用SQL Server中COALESCE()函数的方法
SQL Server 2005混合模式登录配置
解决SQL Server不允许进行远程连接
SQL Server 2005的output子句用法
Oracle和SQL Server分析挖掘函数
mysql INSERT command denied to user
未与信任 SQL Server 连接相关
SQL Server存储的层级数据读出成树显示
SQL Server存储层级数据实现无限级分类
MySQL server has gone away问题原因
sqlserver与oracle的区别
mysql与sqlserver的所有区别

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 145 ::
收藏到网摘: 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]