现在的位置: 首页 > 综合 > 正文

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

2012年03月20日 ⁄ 综合 ⁄ 共 2435字 ⁄ 字号 评论关闭

一、使用 Microsoft OLE DB
Provider For ODBC
链接MySQL

安装MySQLODBC驱动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]  

 

四、链接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',@rmtp 

assword='密码'  

 

然后你就可以如下:

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 

-->

作者:

抱歉!评论已关闭.