一、连接全程服务器
exec sp_addlinkedserver 'MAP', '', 'SQLOLEDB', '服务器的IP地址或名称' ;
二、登录远程数据库
exec sp_addlinkedsrvlogin 'MAP', 'false ',null, '远程数据登录名', '远程数据库密码'
三、查看本地远程连接信息
---查看连接的服务和登录信息
-- 当前实例已注册的可访问的实例(即查看使用sp_addlinkedserver已注册过的实例)
exec sp_helpserver;
select * from sys.servers;---功能同sp_helpserver
--查看已注册的登陆访问帐户(即查看使用sp_addlinkedsrvlogin已注册过的帐户)
select * from sys.linked_logins;
--查看已注册的远端访问帐户
select * from sys.remote_logins;
四、查询或操作数据
查询使用
select * from MAP.MyDB.dbo.OverCase;
select * from openquery(MAP,'select * from MyDB.dbo.OverCase');
游标中使用(注:比较慢)
begin
---创建游标修改 EnterTime
declare @caseid int;
declare @time datetime;
declare cursorOne cursor for select caseid,entertime from WLLiuXue_Diy.dbo.OverCase;
open cursorOne;
fetch next from cursorOne into @caseid,@time;
while(@@FETCH_STATUS=0)
begin
--print @caseid;
--print @time;
update MAP.WLLiuXue_Diy.dbo.OverCase set EnterTime=@time
where CaseID=@caseid;
fetch next from cursorOne into @caseid,@time;
end;
close cursorOne;
deallocate cursorOne;
end;
五、断开登录、断开连接
Exec sp_droplinkedsrvlogin 'MAP' ,null
Exec sp_dropserver 'MAP'
六、存储过程详细介绍
sp_addlinkedsrvlogin
sp_addlinkedsrvlogin [ @rmtsrvname = ] 'rmtsrvname'
[ , [ @useself = ] 'TRUE' | 'FALSE' | NULL ]
[ , [ @locallogin = ] 'locallogin' ]
[ , [ @rmtuser = ] 'rmtuser' ]
[ , [ @rmtpassword = ] 'rmtpassword' ]
参数说明: [ @rmtsrvname = ] ' rmtsrvname '
应用登录映射的链接服务器的名称。 rmtsrvname 的数据类型为 sysname,无默认值。
确定是否通过模拟本地登录名或显式提交登录名和密码来连接到 rmtsrvname。 数据类型为 varchar(8),默认值为 TRUE。
值为 TRUE 指定登录名使用自己的凭据连接到 rmtsrvname,而忽略 rmtuser 和 rmtpassword 参数。 FALSE 指定 rmtuser 和rmtpassword 参数用于连接到指定 locallogin 的 rmtsrvname。 如果 rmtuser 和 rmtpassword 也设置为 NULL,则不使用登录名或密码来连接链接服务器。
本地服务器上的登录。 locallogin 的数据类型为 sysname,默认值为 NULL。 NULL 指定此项应用于连接到 rmtsrvname 的所有本地登录。 如果不为 NULL,则 locallogin 可以是 SQL Server 登录或 Windows 登录。 对于 Windows 登录来说,必须以直接的方式或通过已被授权访问的 Windows 组成员身份授予其访问 SQL Server 的权限。
当 @useself 为 FALSE 时,用于连接到 rmtsrvname 的远程登录名。 当远程服务器是不使用 Windows 身份验证的 SQL Server 实例时,rmtuser 是一个 SQL Server 登录名。 rmtuser 的数据类型为 sysname,默认值为 NULL。
与 rmtuser 关联的密码。 rmtpassword 的数据类型为 sysname,默认值为 NULL。
sp_addlinkedserversp_addlinkedserver [ @server= ] 'server' [ , [ @srvproduct= ] 'product_name' ]
[ , [ @provider= ] 'provider_name' ]
[ , [ @datasrc= ] 'data_source' ]
[ , [ @location= ] 'location' ]
[ , [ @provstr= ] 'provider_string' ]
[ , [ @catalog= ] 'catalog' ]
EXEC sp_addlinkedserver
@server='ZYB',--被访问的服务器别名
@srvproduct='',
@provider='SQLOLEDB',
@datasrc="/Server2" --要访问的服务器
七、相关资料
1.
http://www.cnblogs.com/xiangzhong/p/5051271.html
2.
http://www.cnblogs.com/OpenCoder/archive/2010/03/18/1689321.html
3.