分布式查询的使用准则

简介: 只要访问接口支持所需的 OLE DB 接口,则本主题中所提到的每一类 Transact-SQL 语句均可以使用。 Transact-SQL 语句 以下列表列出了 Transact-SQL 语言的一些子集,可对通过基于链接服务器的名称或临时名称访问的远程表使用这些子集: 所有具有标准格式 SELECT select_list FROM 子句 WHERE 子句的查询均允许使用。

只要访问接口支持所需的 OLE DB 接口,则本主题中所提到的每一类 Transact-SQL 语句均可以使用。

Transact-SQL 语句

以下列表列出了 Transact-SQL 语言的一些子集,可对通过基于链接服务器的名称或临时名称访问的远程表使用这些子集:

  • 所有具有标准格式 SELECT select_list FROM 子句 WHERE 子句的查询均允许使用。当 new_table_name 引用远程表时,不允许使用 SELECT 语句的 INTO new_table_name 子句。

  • 在 SELECT、INSERT、UPDATE 和 DELETE 语句中,不能用单个部分或四个部分组成的表名限制远程表中的列。应在 FROM 子句中指定远程表的别名,并且别名应用于限定列名。

  • 无法查询包含 xml 列的表,即使查询可以访问该表中的非 xml 列。

  • 将远程表中的大型对象 (LOB) 列指定为 SELECT 语句的 select_list 中的项时,SELECT 语句不能包含 ORDER BY 子句。

  • IS NULL 和 IS NOT NULL 谓词不能引用远程表中的 LOB 列。

  • 当查询中还包含 WHERE 子句时,在分布式查询中不能使用 GROUP BY ALL。支持不指定 ALL 的 GROUP BY 子句。

  • 只要访问接口符合 OLE DB 对 INSERT 语句的要求,就允许对远程表使用 INSERT 语句。有关详细信息,请参阅 。

  • 无法通过分布式查询将 NULL 常量插入 timestamp 列中。

  • 分布式查询不支持 $IDENTITY 和 $ROWGUIDCOL。无法将显式值插入远程表中的标识列。

  • 如果访问接口符合指定表的 OLE DB 接口要求,则允许对远程表使用 UPDATE 和 DELETE 语句。有关详细信息,请参阅 。

  • 如果访问接口符合对某个远程表进行更新的条件,那么当在 UPDATE 或 DELETE 语句(UPDATE 或 DELETE remote_table WHERE CURRENT OF cursor_name)中指定了该远程表时,即可通过在分布式查询中定义的游标对该远程表进行更新或删除。有关详细信息,请参阅。

  • 不支持对远程表使用 READTEXT、WRITETEXT 和 UPDATETEXT 语句。

  • 如果在 SQL Server 进程外对访问接口进行实例化,则无法在更新或插入操作中引用具有大型对象数据类型(如 textntextimage)的列,访问接口选项 AllowInProcess 为 0。有关详细信息,请参阅。

  • 不允许对链接服务器使用数据定义语言语句(如 CREATE、ALTER 或 DROP 语句)。

  • EXECUTE 语句可以使用 AT 关键字向链接服务器发送传递命令。能否执行该语句取决于链接服务器的 RPC 配置,还取决于链接服务器能否执行该语句。

  • 不允许对链接服务器执行其他数据库级的操作或语句。

其他准则

下面是其他一些限制和准则:

  • STATIC 或 INSENSITIVE 游标可以引用远程表。如果 OLE DB 访问接口满足某些要求,则 KEYSET 游标可以引用远程表。有关这些要求的详细信息,请参阅。其他类型的游标不可以引用远程表。

  • 只对 SQL Server 数据源支持存储过程。

  • 必须先将连接的 ANSI_NULLS 和 ANSI_WARNINGS 选项设置为 ON,然后该连接才能执行分布式查询。有关详细信息,请参阅 。

  • 若要在某一链接服务器上使用表时创建最佳查询计划,查询处理器必须具有来自该链接服务器的数据分布统计。对表的任何列具有有限权限的用户可能没有足够的权限来获取所有有用的统计,并且可能会收到效率较低的查询计划和经历不佳的性能。如果链接服务器是 SQL Server 的实例,若要获取所有可用的统计,用户必须拥有该表或者是链接服务器上 sysadmin 固定服务器角色、db_owner 固定数据库角色或者 db_ddladmin 固定数据库角色的成员。
目录
相关文章
|
12月前
|
人工智能 供应链 监控
数字孪生与农业:精准农业的发展趋势
数字孪生技术正逐步渗透到农业生产的各个环节,通过创建物理实体的数字副本,实现对实体状态的精确模拟和预测。在农业领域,这一技术的应用正引领着精准农业的发展趋势,包括智慧栽培、环境智能控制、精准农业管理和农业供应链优化等方面,为农业生产的智能化、高效化和可持续发展提供了强大的技术支持。
|
SQL 存储 druid
Minerva -- Airbnb 的大规模数据指标系统 Part 3
Minerva -- Airbnb 的大规模数据指标系统 Part 3
749 0
Minerva -- Airbnb 的大规模数据指标系统 Part 3
|
安全 云计算 开发者
开源软件的影响力
本文分析了开源软件在推动技术创新、多样化商业模式、安全风险管理以及在各行业应用案例中的影响力,强调了开源软件通过开放源代码、协作、教育、社区支持、透明度和低成本特性,在信息技术领域带来的积极效应和未来发展的潜力。
565 0
|
11月前
|
DataWorks 数据可视化 搜索推荐
DataWorks产品体验与评测报告
DataWorks是一款全面的大数据开发治理平台,通过最佳实践测评,展示了其在用户画像分析、数据管理和开发效率提升等方面的强大功能。体验过程中,虽遇到开通流程繁琐、文档不足等问题,但整体功能满足预期。建议增强实时数据处理能力和数据可视化功能,以进一步提升用户体验。与同类工具相比,DataWorks在功能全面性、性能和开放性上表现突出,但也需优化界面设计和价格策略。新版Data Studio中的Notebook和智能助手Copilot提供了优秀的交互式编程和智能辅助,但仍需改善稳定性和集成度。
|
数据处理 UED
Axure中继器教程及案例详解
Axure RP 是一款强大的原型设计工具,广泛应用于产品设计、UI/UX 设计及交互设计中。中继器(Repeater)作为 Axure 中的一个重要元件,以其强大的数据处理和动态交互能力,成为设计师们不可或缺的工具。本文将从中继器基础、进阶、高级应用,以及分页控制、合计、列表拖动、列表滑动删除、表内修改等方面,详细介绍中继器的使用方法和案例。
351 6
Axure中继器教程及案例详解
|
存储 缓存 监控
Web服务器
【7月更文挑战第19天】Web服务器
634 2
|
Windows
LabVIEW中ActiveX控件、ActiveX服务器和类型库注册
LabVIEW中ActiveX控件、ActiveX服务器和类型库注册
464 4
|
消息中间件 存储 Java
Spring Boot 中的 RabbitMQ 消息发送配置
Spring Boot 中的 RabbitMQ 消息发送配置
|
SQL 数据库连接 数据库
数据库的内、外连接
数据库的内、外连接
157 0
|
机器学习/深度学习 编解码
可变卷积原理总结
可变卷积原理总结
337 0