OpenQuery实践基础教程

 
   | |

导读:在给定的链接服务器(一个 OLE DB 数据源)上执行指定的直接传递查询。可以在查询的 FROM 子句中像引用表名那样引用 OPENQUERY 函数。

关键词:OPENQUERY OLE 数据库 Informix

正在加载数据...

  一、OPENQUERY 函数介绍

  重点:

  .使用 OPENQUERY 函数在链接服务器上执行直接传递查询的语法和事实;

  .直接传递查询示例的 SQL 语句:在链接服务器 XXXServer 上执行 SELECT 语句,并从传递回来的结果集中取出所有内容;

  执行直接传递查询

  当查询链接服务器的时候,可以使用 OPENQUERY 函数在链接服务器上执行直接传递查询

  语法:OPENQUERY (链接服务器名称, ‘查询字符串')

  使用 OPENQUERY 函数进行直接传递查询

  可以在 SELECT 语句中用 OPENQUERY 函数的结果代替表名的位置

  若 OLE DB 提供程序支持,还可以用 OPENQUERY 函数的结果作为 INSERT、UPDATE 或 DELETE 语句的目标表

  直接传递查询示例

  SELECT * FROM OPENQUERY (XXXServer, 'SELECT ProductID, Royalty FROM Northwind.dbo.ProductInfo')

  二、查詢、新增、更新、刪除

  假设在第一步的设置里“链接服务器名”里填入的是“TEST”,查询、写入、更新及删除以表tableName为例用如下语句

  查询:SELECT * FROM OPENQUERY(TEST, 'SELECT * FROM tableName')

  写入:INSERT INTO OPENQUERY(TEST, 'SELECT * FROM tableName WHERE 1>1') VALUES(3,6,'ANDY')

  更新:UPDATE OPENQUERY(TEST, 'SELECT * FROM tableName') SET role_id = 'ForTest' WHERE id = 3

  删除:DELETE OPENQUERY(TEST, 'SELECT * FROM tableName') WHERE id IN (1,3)

  以上语句在查询分析器里执行通过。

  这里最关键的是使用SQL的函数OPENQUERY,查询、写入、更新及删除的目标表都用OPENQUERY函数来打开Oracle的表就可以了,有关OPENQUERY函数的说明,SQL Server的帮助文档里如下:

  OPENQUERY

  在给定的链接服务器(一个 OLE DB 数据源)上执行指定的直接传递查询。可以在查询的 FROM 子句中像引用表名那样引用 OPENQUERY 函数。依据 OLE DB 提供程序的能力,还可以将 OPENQUERY 函数引用为 INSERT、UPDATE 或 DELETE 语句的目标表。尽管查询可能返回多个结果集,但是 OPENQUERY 只返回第一个。

  语法

  OPENQUERY ( linked_server , 'query' )

  参数

  linked_server

  一个标识符,表示链接的服务器的名称。

  'query'

  在链接的服务器中执行的查询字符串。

  注释

  OPENQUERY 不接受参数变量。

  三、OPENQUERY 的日期时间条件式

  不建议使用:select * from openquery(linked_server ,'select * from kxx_file ') where kxx07='2009-10-08'

  该语句查询耗时18s;很明显RETURN的数据相当大,再进行筛选;

  建议使用:select * from openquery(linked_server ,'select * from kxx_file where kxx07={ ts ''2009-10-08 00:00:00.000''} ')

  该语句查询耗时3s;在linked_server执行完筛选才RETURN的,TABLE的数据量越大效果越明显;

原文出处:http://www.cnblogs.com/godwar/archive/2009/10/09/1579480.html
 
来源:cnblog    作者:godwar    
 
 
 
 
 

Informix开发

 
经过1个多月的数据收集与整理,于09年末进行的“数据库薪酬调查”圆满结束。我们也在第一时间对数据进行了分析与整理,数据库工程师薪酬调查报告也正式出炉。
 
2008年10月15日,IBM在中国开发中心创新开放日活动中向各位嘉宾展示了IBM中国开发中心的资源和实力。首先是开发中心的概况;第二个主题是……

热门技术手册排行

 

在本次的技术手册中,我们为您提供了PL/SQL的基础知识以及专家指导,包括了PL/SQL中的数据类型简介、PL/SQL函数与触发器以及PL/SQL中的存储过程等,相信您无论是高手还是菜鸟都可以获得有帮助的信息。

 

本系列文章由三部分组成,为Oracle数据库管理员(DBA)面试成功的必备手册。本专题内容囊括从DBA最初的面试开始,从写“杀手简历”到求职信、到面试过程到Oracle认证再到上升到公司高层最后到你成为公司里的明星DBA。专家为你一一指点迷津,最终让你登上成功的宝座。

 

要成为一名DBA,你需要具备哪些素质?DBA的薪酬待遇如何?DBA的职业道路究竟可以走向何方?我们将在本次的技术手册中为您一一解答。

 

在本次技术手册中,我们将对SQL Server存储过程的调试进行详细的介绍,包括了基础的调试方法和在调试过程中出现的T-SQL性能问题和解决方法。

 

本技术专题主要围绕sql server设计这个话题展开,侧重介绍了sql server集簇索引的设计、如何创建sql server索引、如何优化索引、索引的能与不能、处理sql server 2000索引碎片技巧以及维护sql server索引以实现查询优化等等。

查看更多
 
 

登录TechTarget中国

关闭
本服务仅向TechTarget中国的会员开放,请登录或立即免费注册
电子邮件地址:
请输入您的电子邮件地址
密码:
下次自动登录