linked server基础

-- =============================================            
-- Author:      余波(杭州)            
-- Create date: 2011/09/26           
-- Description: linked server连接sql server           
-- ============================================= 

----创建sql server链接服务器
exec sp_addlinkedserver @server='www\sql2005',@srvproduct='sql server'
----删除链接服务器
exec sp_dropserver @server='www\sql2005'
----增加链接服务器登录名映射
----@userself为false,则链接服务器登录用户名会用@rmtuser,密码相应的会用@rmtpassword
----@userself为true,则链接服务器会使用本地的sql或windows登录名,这取决于你本地登录sql客户端登录时选择的登录类型
----@locallogin为null值,则不管是sql还是windows登录方式都会映射到后面创建的用户名和密码来登录链接服务器
exec sp_addlinkedsrvlogin @rmtsrvname='www\sql2005',@useself='false',@locallogin=null,@rmtuser='sa',@rmtpassword='1'
----删除链接服务器登录名映射
---@locallogin为null,则删除所用映射
exec sp_droplinkedsrvlogin @rmtsrvname='www\sql2005',@locallogin=null

----创建链接服务器的别名
create synonym dbo.x
for [www\sql2005].databasename.schemaname.tablename

----删除链接服务器的别名
drop synonym dbo.x

----用openquery查询,完完全全在链接服务器上执行,执行完之后再把结果返回给本地客户端
select * from openquery([www\sql2005],'select * from database.schema.tablename')
----用openrowset查询,不需要建立链接服务器,openrowset会建立一个临时的目标数据源的连接
select * from openrowset('SQLNCLI','www\sql2005';'sa';'1','select * from database.schema.tablename')
----用openrowset插入数据,在select的时候需要列出列名
insert into openrowset('SQLNCLI','www\sql2005';'sa';'1','select col01 from database.schema.tablename') values('xx')
----用openrowset删除数据
delete from  openrowset('SQLNCLI','www\sql2005';'sa';'1','select * from database.schema.tablename where 条件')
----用openrowset更新数据,其中col为database.schema.tablename中的列
update openrowset('SQLNCLI','www\sql2005';'sa';'1','select * from database.schema.tablename where 条件') set col='xx'

 

你可能感兴趣的:(linked server基础)