服务器 频道

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

  三、设置链接服务器以访问格式化文本文件
  
  用于 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
  
  @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 * into xiaoming.northwind.dbo.tt from
  
  xiaoming.northwind.dbo.tt
  
0
相关文章