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