MSSQL可以跨服务器远程对MSSQL、Excel、DB2、Oracle、XML…等数据源执行操作,对不同的数据源提供不同的接口,这里使用MSDASQL驱动接口作为示例。
1.建立连接服务器并建立链接服务器登陆
EXEC sp_addlinkedserver ‘test_remot’,”,’MSDASQL’,NULL,NULL,’DRIVER={SQL Server};SERVER=10.64.29.14;UID=sa;PWD=sa;’
EXEC sp_addlinkedsrvlogin @rmtsrvname=’test_remot’,@useself=’false’,@locallogin=’sa’,@rmtuser=’sa’,@rmtpassword=’sa’
GO
这里只对已填的参数作下说明,其它的可以到MSDN查阅
’test_remot’:链接服务器名称
’MSDASQL’:驱动类型
’DRIVER={SQL Server};SERVER=10.64.29.14;UID=sa;PWD=sa2005;’:驱动连接字符串,SERVER(远程服务器IP) UID(远程数据库登录用户名) PWD(远程数据库登录密码)
@rmtsrvname:链接服务器名称
@locallogin:本地用户
@rmtuser:远程用户
@rmtpassword:远程用户密码
2.查询
示例:SELECT * FROM OPENQUERY(TEST, ‘SELECT * FROM tableName’)
可简写为:SELECT filed1,filed2… FROM TEST.DataBaseName.dbo.tableName where filed=value
3.插入
示例:INSERT INTO OPENQUERY(TEST, ‘SELECT * FROM tableName WHERE 1=0′) VALUES(3,6,’ANDY’)
可简写为: INSERT INTO TEST.DataBaseName.dbo.tableName VALUES(3,6,’ANDY’)
4.更新
示例:UPDATE OPENQUERY(TEST, ‘SELECT * FROM tableName’) SET role_id = ‘ForTest’ WHERE id = 3
可简写为:UPDATE TEST.DataBaseName.dbo.tableName SET role_id = ‘ForTest’ WHERE id = 3
5.删除
示例:DELETE OPENQUERY(TEST, ‘SELECT * FROM tableName’) WHERE id = 1
可简写为:DELETE TEST.DataBaseName.dbo.tableName WHERE id = 1
6.存储过程
示例:EXEC TEST.DataBaseName.dbo.sp_OA_Copy @inputValue,@outputValue output
7.OPENQUERY 的日期时间条件式
不建议使用:select * from openquery(TEST ,’select * from tableName ‘) where filed=’2009-11-06’
该语句查询耗时18s;很明显RETURN的数据相当大,再进行筛选;
建议使用:select * from openquery(TEST ,’select * from tableName ‘) where filed={ ts ”2009-11-06 00:00:00.000”} ‘)
该语句查询耗时3s;在TEST执行完筛选才RETURN的,TABLE的数据量越大效果越明显;
8.使用MSDASQL驱动不支持项
1.不支持XML字段插入、更新
2.执行存储过程时,存储过程中不能包括临时表,如果包括则要在执行存储过程前加上 SET FMTONLY OFF
注:需要对XML字段插入、更新时,我们可以调用远程存储过程完成
9.还可以使用:opendatasource、openrowset进行跨库跨数据服务器操作。
网上找到一个图用于描述操作过程:
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
云端SQL Server高可用性最佳做法
与内部部署相比,在云端运行SQL Server可为数据库软件用户提供更多的灵活性和可扩展性,也可能更省钱。但云 […]
-
甲骨文自治数据库亮相 带来云计算新希望
早前甲骨文还不在云计算公司之列,而现在该公司正在迅速弥补其失去的时间。甲骨文的云计算核心是甲骨文自治数据库(O […]
-
2017年12月数据库流行度排行榜 定格岁末排名瞬间
数据库知识网站DB-engines最近更新的2017年12月份数据库流行度排名情况是否能提供更多的看点呢?TechTarget数据库网站将与您分享12月份的榜单排名情况,让我们拭目以待。
-
2017年11月数据库流行度排行榜 半数以上数据库积分减少
数据库知识网站DB-engines更新了2016年11月份的数据库流行度排行榜。TechTarget数据库网站将与您一同关注11月份的榜单排名情况。