SQL SERVER链接服务器资料

在sql server 2005下面有个两个存储过程用于可用于通过sql语句来添加链接服务器。

1、添加链接服务器

[sp_addlinkedserver]
 @server   sysname,    -- server name 链接服务器
 @srvproduct  nvarchar(128) = NULL, -- product name (dflt to ss) 产品名称
 @provider  nvarchar(128) = NULL, -- oledb provider name  访问接口
 @datasrc  nvarchar(4000) = NULL, -- oledb datasource property数据源
 @location  nvarchar(4000) = NULL, -- oledb location property位置
 @provstr  nvarchar(4000) = NULL, -- oledb provider-string property访问接口字符串
 @catalog  sysname = NULL   -- oledb catalog property目录

2、配置链接服务器登录信息

[sp_addlinkedsrvlogin]
 @rmtsrvname  sysname,  --链接服务器名称
 @useself  varchar(8) = 'true',--是否模拟
 @locallogin  sysname = NULL, --本地登录
 @rmtuser  sysname = NULL,  --连接账号
 @rmtpassword sysname = NULL  --连接密码

 

一、连接access数据库

1、添加链接

A、使用可视界面

B、使用存储过程

EXEC sp_addlinkedserver

   @server = 'accesslink',

   @provider = 'Microsoft.Jet.OLEDB.4.0',

   @srvproduct = 'OLE DB Provider for Jet',

   @datasrc = 'e:\test.mdb'

如果access数据库带密码,则需要在@provstr的地方加入密码的设置

EXEC sp_addlinkedserver

   @server = 'testlink',

   @provider = 'Microsoft.Jet.OLEDB.4.0',

   @srvproduct = 'OLE DB Provider for Jet',

   @datasrc = 'E:\depodog.mdb',

   @provstr = ';pwd=bluesky'

添加完成之后可以在sql server 2005里看到access的表、视图等

2、操作表数据

select * from accesslink...weborder  --注意是三个.

 

二、链接SQL Server数据库

1、添加链接

a、使用可视界面

然后在安全性的地方设置一下“使用此安全上下文建立连接”,输入访问的账号和密码

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

[sp_addlinkedserver]
 @server='testdb',
 @srvproduct= '',
 @provider='MSDASQL',
 @datasrc = NULL,
 @location = NULL,
 @provstr ='DRIVER={SQL Server};SERVER=192.168.5.210;UID=test;PWD=12345',
 @catalog   = NULL

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

[sp_addlinkedserver]
 @server='testdb',
 @srvproduct= '',
 @provider='SQLOLEDB',
 @datasrc = '192.168.5.210',
 @location = NULL,
 @provstr =NULL,
 @catalog   = NULL

[sp_addlinkedsrvlogin]
 @rmtsrvname ='testdb',
 @useself = 'false',
 @locallogin  = null, 
 @rmtuser  = 'test',  
 @rmtpassword = 'test'

--特别注意@locallogin的设置,一旦设置了用户,其他用户或者windows身份验证都无法使用这个链接服务器,必须是这个用户登陆才能使用连接服务器。

2、操作表数据

select * from 别名.库名.dbo.表名

insert 库名.dbo.表名 select * from 别名.库名.dbo.表名

select * into 库名.dbo.新表名 from 别名.库名.dbo.表名

-----------------------------------------------------------

以上部分是通过测试的,以下部分只是复制过来的,没有验证过,有时间再验证

-----------------------------------------------------------

三、使用 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='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 用户名.存储过程名')

 

五、连接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连接服务器的实现

posted @ 2009-05-13 15:27  无知者  阅读(644)  评论(0编辑  收藏  举报