分布式数据开发,链接多个数据库服务器
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]