链接服务器使⽤⽅法
使⽤sql语句:
exec sp_addlinkedserver @server='serverontest',@provider='sqloledb',@srvproduct='',@datasrc='101.123.10.112'
添加⼀个链接服务器
使⽤sql语句:
EXEC sp_addlinkedsrvlogin @rmtsrvname='serverontest', @useself='false', @locallogin='sa', @rmtuser='sa', @rmtpassword='passwordofsa'
添加登录⽅式
以上两个语句中,@server为服务器的别名,@datasrc为要链接的⽬标数据库的连接串,@rmtsrvname为别名,@locallogin为本地登录的⽤户名,@rmtuser和@rmtpassword为要链接的⽬标数据库的登录⽤户名和密码
添加完链接服务器之后,可以通过select * from sys.linked_logins 和 select * from sys.servers来查看已经添加的链接服务器和登录⾓⾊
添加完链接服务器后,使⽤select * from 别名.库名.dbo.表名来对其中的数据进⾏查询
删除链接服务器登录映射和链接服务器的⽅法:
 exec sp_droplinkedsrvlogin ’serverontest’ ,’sa’
 exec sp_dropserver ’serverontest’
上⽂仅仅是添加到sqlserver的链接服务器的⽅法,关于添加到其它数据库的链接服务器的⽅法,参见:
⼀、使⽤ 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⽤户名.存储过程名’)
三、设置链接服务器以访问格式化⽂本⽂件
  ⽤于 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’
  GOsql连接不上服务器
  --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*
  [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
  @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* from 
五、设置链接服务器以访问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 * 表名
  六、连接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连接服务器的实现
  本⽂的测试环境为:
  操作系统: 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⽤户].[表名]。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。