下一篇 » « 上一篇

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

作者:    时间:2008-01-22    来源:    点击:42147    本文共1篇文章 字体:[ ]

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

一、使用 Microsoft OLE DB Provider For ODBC 链接MySQL
安装MySQL的ODBC驱动MyODBC
1、为MySQL建立一个ODBC系统数据源,例如:选择数据库为test ,数据源名称为 www.444p.com

myDSN

www.444p.com版权所有

2、建立链接数据库
EXEC sp_addlinkedserver @server = 'MySQLTest', @srvproduct='MySQL', www.444p.com

@provider = 'MSDASQL', @datasrc = 'myDSN'
GO
EXEC sp_addlinkedsrvlogin

@rmtsrvname='MySqlTest',@useself='false',@locallogin='sa',@rmtuser='mys

php学习之家http://www.444p.com

ql的用户名',@rmtpassword='mysql的密码'

www.444p.com版权所有

3、查询数据 本文来自 www.444p.com

SELECT * FROM OPENQUERY (MySQLTest ,'select * from 表' ) www.444p.com

下面这个不行:
SELECT * FROM OPENQUERY (MySQLTest ,'表' ) 本文来自 www.444p.com

注意:不能直接用select * from 链接服务器名.数据库名.用户名.表(或视图) 本文来自 www.444p.com

四部分名称查询数据,可能是个Bug. php学习之家


二、使用 Microsoft OLE DB Provider For ORACLE 链接ORACLE

1、建立链接数据库
sp_addlinkedserver '别名', 'Oracle', 'MSDAORA', '服务名'
GO
EXEC sp_addlinkedsrvlogin @rmtsrvname='别名 php学习之家

',@useself='false',@locallogin='sa',@rmtuser='oracle用户名 www.444p.com

',@rmtpassword='密码'

php学习之家

2、查询数据 php学习之家http://www.444p.com

SELECT * FROM 别名..用户名.表(视图) php学习之家

注意:四部分名称全部用大写

php学习之家http://www.444p.com

3、执行存储过程

www.444p.com

使用OPENQUERY:
SELECT *
FROM OPENQUERY(别名, 'exec 用户名.存储过程名')


三、设置链接服务器以访问格式化文本文件 www.444p.com

用于 Jet 的 Microsoft OLE DB 提供程序可用于访问并查询文本文件。

php学习之家http://www.444p.com

若要直接创建访问文本文件的链接服务器而不将文件链接为 Access .mdb 文件中

www.444p.com

的表,请执行 sp_addlinkedserver,如下例所示。
提供程序是 Microsoft.Jet.OLEDB.4.0,提供程序字符串为"Text"。数据源是包

php学习之家http://www.444p.com

含文本文件的目录的完整路径名称。schema.ini 文件(描述文本文件的结构)必

须与此文本文件存在于相同的目录中。有关创建 schema.ini 文件的更多信息, www.444p.com

请参见 Jet 数据库引擎文档。 php学习之家

--Create a linked server.
EXEC sp_addlinkedserver txtsrv, 'Jet 4.0',
'Microsoft.Jet.OLEDB.4.0',
'c:\data\distqry',
NULL,
'Text'
GO

php学习之家http://www.444p.com

--Set up login mappings.
EXEC sp_addlinkedsrvlogin txtsrv, FALSE, NULL, Admin, NULL
GO

本文来自 www.444p.com

--List the tables in the linked server.
EXEC sp_tables_ex txtsrv
GO 本文来自 www.444p.com

--Query one of the tables: file1#txt
--using a 4-part name.
SELECT *
FROM txtsrv...[file1#txt]

www.444p.com php学习之家

四、链接SQL Server服务器:

php学习之家http://www.444p.com

1、使用 ODBC 的 Microsoft OLE DB 提供程序

EXEC sp_addlinkedserver '别名','','MSDASQL',NULL,NULL,'DRIVER={SQL

php学习之家http://www.444p.com

Server};SERVER=远程名;UID=用户;PWD=密码;'
如果加上参数@catalog,可以指定数据库
exec sp_addlinkedsrvlogin @rmtsrvname='别名 www.444p.com版权所有

',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密码'

php学习之家


2、使用SQL Server 的 Microsoft OLE DB 提供程序

php学习之家

exec sp_addlinkedserver @server='别名 php学习之家

',@provider='sqloledb',@srvproduct='',@datasrc='远程服务器名'
exec sp_addlinkedsrvlogin

@rmtsrvname='wzb',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtp

php学习之家

assword='密码'

php学习之家

然后你就可以如下:
select * from 别名.库名.dbo.表名
insert 库名.dbo.表名 select * from 别名.库名.dbo.表名
select * into 库名.dbo.新表名 from 别名.库名.dbo.表名
go php学习之家

例1、 www.444p.com

此示例在 SQL Server 的实例上创建一台名为 S1_instance1 的链接服务器,
该服务器使用 SQL Server 的 Microsoft OLE DB 提供程序。

本文来自 www.444p.com

EXEC sp_addlinkedserver @server='S1_instance1', @srvproduct='',
@provider='SQLOLEDB',

www.444p.com

@datasrc='S1\instance1'

www.444p.com php学习之家

例2、

www.444p.com php学习之家

--建立链接服务器
EXEC sp_addlinkedserver 'xiaoming','','MSDASQL',NULL,NULL,'DRIVER={SQL www.444p.com php学习之家

Server};SERVER=192.168.0.1;UID=sa;PWD=123;'
--建立链接服务器登录映射
exec sp_addlinkedsrvlogin 本文来自 www.444p.com

@rmtsrvname='xiaoming',@useself='false',@locallogin='sa',@rmtuser='sa',

php学习之家

@rmtpassword='123'
go
--查询数据
select * from xiaoming.schooladmin.dbo.agent php学习之家

--删除链接服务器登录映射和链接服务器:
exec sp_droplinkedsrvlogin 'xiaoming' ,'sa'
exec sp_dropserver 'xiaoming' php学习之家


注意事项: php学习之家

SET IDENTITY_INSERT [ database.[ owner.] ] { table } { ON | OFF }
所以不能通过连接服务器设置此属性
into 也存在这样的问题
select * into xiaoming.northwind.dbo.tt from php学习之家http://www.444p.com

xiaoming.northwind.dbo.tt

五、设置链接服务器以访问Access数据库

www.444p.com

使用用于 Jet 的 Microsoft OLE DB 提供程序
此示例创建一台名为 test的链接服务器。 www.444p.com php学习之家

说明 本示例假设已经安装 Microsoft Access 和示例 Northwind 数据库,且 php学习之家

Northwind 数据库驻留在 C:\。

www.444p.com php学习之家


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...表名 www.444p.com php学习之家

六、连接SYBASE
--首先,你要在SQL服务器上装上访问sybase的客户端

www.444p.com版权所有

--创建链接服务器
exec sp_addlinkedserver 'Sybase1', ' ', 'MSDASQL', NULL, NULL
,'Driver={Sybase System

www.444p.com

11};Database=hisdb;Srvr=10.211.135.12;UID=sa;PWD=1111;'
使用:
select * from Sybase1.hisdb.dbo.table1

php学习之家

方法二
使用ODBC
SQL Server到SYBASE连接服务器的实现

作者: CCBZZP php学习之家http://www.444p.com


本文的测试环境为:
操作系统: WINDOWS2000 SERVER (繁体系统)
安装数据库: SQLSERVER2000(英文版)和SYBASE8.0客户端(英文版)

本文来自 www.444p.com

具体实现步骤:
1.要求pc机上安装SYBASE8.0客户端软件和sqlserver2000软件。
2.配置windows的ODBC数据源:
开始菜单—》程式集—》系统管理工具—》资料数据源(ODBC)—》进入配置用 www.444p.com

户DSN或者系统DSN均可以:添加—》选择ADAPTIVE SERVER ANYWHERE8.0—》自定

php学习之家http://www.444p.com

义数据源名称(随意如: SYBASETEST)—》数据库名称(必选!)—》OK完成。

3. 选择刚才配置的数据源名称, 再选择 配置, 跳出SYBASETEST MESSAGES:

The data source is not connected. Connecting to the data source will php学习之家

provide useful information during configuration. Would you like to www.444p.com php学习之家

connect to the data source?

www.444p.com版权所有

选择YES(OK或确认)即可

进入CONNECT TO SYBASE DATABASE画面:

www.444p.com

USER ID: 输入SYBASE DATABASE的用户

本文来自 www.444p.com

PASSWORD: 输入SYBASE DATABASE的用户的密码

www.444p.com

CONNECTION MODE: 可以选择默认的SHARE模式

php学习之家

选择OK(确认)即可!

www.444p.com

配置和测试ODBC完成!


4.配置sqlserver2000中的连接服务器:
企业管理器—》安全性—》连接服务器—》右键新建连接服务器—》定义连接名 www.444p.com

称; 选其他数据源; 指定程序名称为:SYBASE ADAPTIVE SERVER ANYWHERE

www.444p.com版权所有

PROVIDER8.0; 产品名称可不填; 数据源指定刚才ODBC中定义好的数据源名称; www.444p.com

提供程序字符串按以下格式填写:User ID=username;Password=userpasswd(或者

本文来自 www.444p.com

按如下格式:UID=username;PWD=userpasswd),这里的用户名和密码对应所要连 本文来自 www.444p.com

接的SYBASE数据库中的用户名和密码 —》 安全性标签页里:设置用此安全上下 www.444p.com版权所有

文进行,并录入SYBASE的数据库用户名和密码—》服务器选项标签页可默认—》

www.444p.com

确定。
5.准备工作全部完成!在sqlserver企业管理器—》安全性—》连接服务器打开刚 php学习之家http://www.444p.com

建好的连接服务器—》点击表,即可在右边窗口看到该SYBASE数据库用户拥有的 www.444p.com

的所有表名,但在这里还并不能查看表的记录,这个需要在sqserver的查询分析

本文来自 www.444p.com

器中用具体sql实现!访问表时,使用格式为: [连接服务器名]..[SYBASE用户

].[表名]。更详细具体的使用这里不再赘述。 php学习之家http://www.444p.com

责任编辑:semirock
发表评论
密码: (游客不需要密码)
记住我【Alt+S 或 Ctrl+Enter 快速提交】

搜索工具


《PHP与MYsql》点击排行