分布式数据开发,链接多个数据库服务器

1、添加链接服务器
     EXEC master.dbo.sp_addlinkedserver @server = N'linkserver', @srvproduct=N'',@provider=N'Sqloledb',@datasrc ='szeqdatabeat0'
     说明:   @server 链接服务器的名字,在查询时使用
               @srvproduct  产品名称,随便填写
               @provider 驱动程序
               @datasrc 数据库的服务器

2、添加登录
     exec sp_addlinkedsrvlogin 'linkserver','false',null,'uid','pwd'
     说明:  @rmtsrvname  链接服务器的名字,是上面的@server的值
              @useself 为'false'
              @locallogin 为null
              @rmtuser 为SQL的登录名字,user id,如sa
              @rmtpassword 为SQL的登录密码,password,如sa

3、使用链接
     select * from linkserver.databasename.dbo.tablename
     说明: likeserver 为上面链接服务器所创建的名称
             databasename 为要查询的数据库的名称
             tablename 为要查询的数据库的表名

4、删除链接
     EXEC sp_dropserver 'linkserver','droplogins'  ----删除链接的同时删除登录
     exec   sp_droplinkedsrvlogin     'linkserver,'pwd'         ----删除链接的登录
     exec   sp_dropserver     'linkserver' 

5、帮助
     sp_helpserver 查看所有的链接服务器
     sp_helplinkedsrvlogin 查看所有的链接服务器登录     

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

例1:链接Excel文件:
EXEC sp_addlinkedserver 'ExcelSource','Jet 4.0','Microsoft.Jet.OLEDB.4.0','D:\CAN shares.xls',NULL,'Excel 5.0'
GO
select * from ExcelSource...sheet1$
EXEC sp_dropserver 'ExcelSource','droplogins'

例2:链接文本文件:
--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, 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 four-part name.
SELECT *
FROM txtsrv...[file1#txt]

posted @ 2008-07-03 17:42  谢杰  阅读(525)  评论(0编辑  收藏  举报