◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
|
一个有技术背景的SEOER(百度优化、谷歌优化、搜索引擎优化) 一个懂得优化技术的网站开发工程师(基于ASP.NET的全方位开发) 一个网站策划师 一个网络营销顾问 一个初级的美工 一个数据库工程师(MSSQL) 一个服务器管理员(基于windows平台) 联系QQ:30538357 邮箱:dazix@qq.com |
![]() |
SQL查询远程数据库(链接服务器)的方法
Post by dazix, 2010-4-9, Views:--如果数据少,不经常查询,就直接用:
select * from openrowset('sqloledb','另一个sql服务器名或ip地址';'用户名';'密码',要查询的数据库名..要查询的表名)
--如果数据量大,经常查询,就用链接服务器:
--创建链接服务器
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'
go
--查询示例
select * from srv_lnk.数据库名.dbo.表名
--导入示例
select * into 表 from srv_lnk.数据库名.dbo.表名
go
--处理完成后删除链接服务器
exec sp_dropserver 'srv_lnk','droplogins'
应用实例
打开远程链接
CREATE PROCEDURE dbo.openconn
@ser_link varchar(50), ----链接服务器名称
@connSource varchar(50), ----sql服务器名或ip地址'
@connUID varchar(50), ----用户名
@connPWD varchar(50) ----密码
AS
BEGIN
SET NOCOUNT ON;
if not exists(select * from master.dbo.sysservers where srvname=@ser_link)
begin
exec sp_addlinkedserver @ser_link,' ','SQLOLEDB',@connSource
exec sp_addlinkedsrvlogin @ser_link,'false',null,@connUID,@connPWD
end
END
关闭远程连接
CREATE PROCEDURE dbo.closeconn
@ser_link varchar(50), ----链接服务器名称
AS
BEGIN
SET NOCOUNT ON
if exists(select * from master.dbo.sysservers where srvname=@ser_link)
begin
exec sp_dropserver @ser_link, 'droplogins'
end
END
或许你还对下面的文章感兴趣
- SQL语句执行效率及性能测试 (2010-4-7 11:51:30)
- SQL2005缓存依赖 设置 service broker (2010-1-6 14:58:56)
- ParameterDirection.ReturnValue 用法 (2009-10-26 14:26:22)
- 存储过程 返回值 输出参数 (2009-10-26 14:11:50)
- SQL 错误代码[MS Windows Error Messages ] (2009-9-29 14:17:8)
- 只有mdf文件的sql恢复技术(脱机\置疑\只读\紧急模式) (2009-8-14 13:23:23)
- SQL的安全管理设置 (2009-8-7 16:30:34)
- ms-sql 修改数据库对象的所有者 (2009-5-14 12:50:24)
- sql有效的删除重复记录方法 (2009-4-21 16:51:33)
- SQL注入漏洞全接触 (2008-11-19 22:1:51)
Comments


