如题,谢谢!!!!

解决方案 »

  1.   

    sp_addlinkserver
    opendatasource
    openrowset
    etc.
      

  2.   

    --转:
    SQL Server的链接服务器技术小结
    一、使用 Microsoft OLE DB Provider For ODBC 链接MySQL
    安装MySQL的ODBC驱动MyODBC
    1、为MySQL建立一个ODBC系统数据源,例如:选择数据库为test ,数据源名称为 myDSN2、建立链接数据库
    EXEC sp_addlinkedserver  @server = 'MySQLTest', @srvproduct='MySQL', @provider = 'MSDASQL', @datasrc = 'myDSN'
    GO
    EXEC sp_addlinkedsrvlogin  @rmtsrvname='MySqlTest',@useself='false',@locallogin='sa',@rmtuser='mysql的用户名',@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]四、链接SQL Server服务器:1、使用 ODBC 的 Microsoft OLE DB 提供程序EXEC sp_addlinkedserver '别名','','MSDASQL',NULL,NULL,'DRIVER={SQL Server};SERVER=远程名;UID=用户;PWD=密码;'
    如果加上参数@catalog,可以指定数据库
    exec sp_addlinkedsrvlogin  @rmtsrvname='别名',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密码'
    2、使用SQL Server 的 Microsoft OLE DB 提供程序exec sp_addlinkedserver @server='别名',@provider='sqloledb',@srvproduct='',@datasrc='远程服务器名'
    exec sp_addlinkedsrvlogin  @rmtsrvname='wzb',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密码'然后你就可以如下:
    select * from 别名.库名.dbo.表名
    insert 库名.dbo.表名 select * from 别名.库名.dbo.表名
    select * into 库名.dbo.新表名 from 别名.库名.dbo.表名
    go例1、此示例在 SQL Server 的实例上创建一台名为 S1_instance1 的链接服务器,
    该服务器使用 SQL Server 的 Microsoft OLE DB 提供程序。EXEC    sp_addlinkedserver    @server='S1_instance1', @srvproduct='',
                                    @provider='SQLOLEDB', @datasrc='S1\instance1'例2、--建立链接服务器
    EXEC sp_addlinkedserver 'xiaoming','','MSDASQL',NULL,NULL,'DRIVER={SQL Server};SERVER=192.168.0.1;UID=sa;PWD=123;'
    --建立链接服务器登录映射
    exec sp_addlinkedsrvlogin  @rmtsrvname='xiaoming',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='123'
    go
    --查询数据
    select * from xiaoming.schooladmin.dbo.agent  --删除链接服务器登录映射和链接服务器:
    exec sp_droplinkedsrvlogin 'xiaoming' ,'sa'
    exec sp_dropserver  'xiaoming' 
    注意事项:SET IDENTITY_INSERT [ database.[ owner.] ] { table } { ON | OFF }
    所以不能通过连接服务器设置此属性
    into 也存在这样的问题
    select  * into   xiaoming.northwind.dbo.tt from xiaoming.northwind.dbo.tt五、设置链接服务器以访问Access数据库使用用于 Jet 的 Microsoft OLE DB 提供程序
    此示例创建一台名为 test的链接服务器。说明  本示例假设已经安装 Microsoft Access 和示例 Northwind 数据库,且 Northwind 数据库驻留在 C:\。
    USE master
    GO
    -- To use named parameters:
    EXEC sp_addlinkedserver 
       @server = 'test', 
       @provider = 'Microsoft.Jet.OLEDB.4.0', 
       @srvproduct = 'OLE DB Provider for Jet',
       @datasrc = 'C:\Northwind.mdb'
    GO
    -- OR to use no named parameters:
    USE master
    GO
    EXEC sp_addlinkedserver 
       'test', 
       'OLE DB Provider for Jet',
       'Microsoft.Jet.OLEDB.4.0', 
       'C:\Northwind.mdb'
    GO
    使用
    select * from test...表名六、连接SYBASE
    --首先,你要在SQL服务器上装上访问sybase的客户端--创建链接服务器
    exec sp_addlinkedserver 'Sybase1', ' ', 'MSDASQL', NULL, NULL
     ,'Driver={Sybase System 11};Database=hisdb;Srvr=10.211.135.12;UID=sa;PWD=1111;'
    使用:
    select * from Sybase1.hisdb.dbo.table1方法二
    使用ODBC
    SQL Server到SYBASE连接服务器的实现 
     
    作者:  CCBZZP
    本文的测试环境为:
    操作系统:  WINDOWS2000 SERVER (繁体系统)
    安装数据库: SQLSERVER2000(英文版)和SYBASE8.0客户端(英文版)
      具体实现步骤: 
    1.要求pc机上安装SYBASE8.0客户端软件和sqlserver2000软件。 
    2.配置windows的ODBC数据源: 
    开始菜单—》程式集—》系统管理工具—》资料数据源(ODBC)—》进入配置用户DSN或者系统DSN均可以:添加—》选择ADAPTIVE SERVER ANYWHERE8.0—》自定义数据源名称(随意如: SYBASETEST)—》数据库名称(必选!)—》OK完成。3. 选择刚才配置的数据源名称, 再选择 配置, 跳出SYBASETEST MESSAGES:The data source is not connected.  Connecting to the data source will provide useful information during configuration.  Would you like to connect to the data source?选择YES(OK或确认)即可进入CONNECT TO SYBASE  DATABASE画面:USER ID: 输入SYBASE DATABASE的用户PASSWORD: 输入SYBASE DATABASE的用户的密码CONNECTION  MODE: 可以选择默认的SHARE模式选择OK(确认)即可! 配置和测试ODBC完成!
    4.配置sqlserver2000中的连接服务器: 
    企业管理器—》安全性—》连接服务器—》右键新建连接服务器—》定义连接名称; 选其他数据源; 指定程序名称为:SYBASE ADAPTIVE SERVER ANYWHERE PROVIDER8.0; 产品名称可不填; 数据源指定刚才ODBC中定义好的数据源名称; 提供程序字符串按以下格式填写:User ID=username;Password=userpasswd(或者按如下格式:UID=username;PWD=userpasswd),这里的用户名和密码对应所要连接的SYBASE数据库中的用户名和密码 —》 安全性标签页里:设置用此安全上下文进行,并录入SYBASE的数据库用户名和密码—》服务器选项标签页可默认—》确定。 
    5.准备工作全部完成!在sqlserver企业管理器—》安全性—》连接服务器打开刚建好的连接服务器—》点击表,即可在右边窗口看到该SYBASE数据库用户拥有的的所有表名,但在这里还并不能查看表的记录,这个需要在sqserver的查询分析器中用具体sql实现!访问表时,使用格式为: [连接服务器名]..[SYBASE用户].[表名]。更详细具体的使用这里不再赘述。