Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > ADP及SQL SERVER

更新查询结果集的规则

时 间:2023-07-06 08:01:25
作 者:杨雪   ID:42182  城市:南京
摘 要:下表汇总了一些特定实例,在这些例子中您也许可以更新“结果”窗格中的查询结果,也许不能。 在许多情况下,正在使用的数据库决定是否可以更新查询结果。
正 文:

      在很多情况下,可以更新显示在“结果”窗格中的结果集。 然而,在某些情况下不能这样做。

      一般情况下,为了更新结果,查询和视图设计器必需具备足够的信息才能唯一地标识表中的行。 例如,查询在输出列表中包括主键时。 此外,您还必须有足够的权限才能更新数据库。

      如果基于视图进行查询,也许可以进行更新。 同样的原则不仅仅适用于视图本身,除非这些原则适用于视图中的基础表。

      下表汇总了一些特定实例,在这些例子中您也许可以更新“结果”窗格中的查询结果,也许不能。 在许多情况下,正在使用的数据库决定是否可以更新查询结果。

查询

是否可以更新结果?

基于某个表的、输出列中包含主键的查询

是(但下面列出的除外)。

基于无唯一索引和无主键的表的查询

取决于查询和数据库。 有些数据库允许在有足够的信息用于唯一地识别记录时进行更新。

基于多个未联接的表的查询

不能。

基于数据库中标记为只读数据的查询

不能。

基于包含一个无约束表的视图的查询

是(但下面列出的除外)。

基于一对一关系联接的表的查询

是(但下面列出的除外)。

基于一对多关系联接的表的查询

通常是。

基于有多对多关系的表(不少于三个)的查询

不能。

基于未授予更新权限的表的查询

可删除但不可更新。

基于未授予删除权限的表的查询

可更新但不可删除。

聚合查询

不能。

基于包含有总计或聚合函数的子查询的查询

不能。

包括 DISTINCT 关键字(用于排除重复的行)的查询

不能。

FROM 子句包括用户定义函数的查询(查询返回一个表且用户定义函数包含有多个 Select 语句)

不能。

FROM 子句中包括内联用户定义函数的查询

是。


      此外,您也许不能在查询结果中更新特定的列。 下面的列表汇总了不能在“结果”窗格中更新的特定类型的列。

  • 基于表达式的列

  • 基于标量用户定义函数的列

  • 其他用户删除的行或列

  • 其他用户锁定的行或列(通常,锁定的行在解锁后就可更新)

  • Timestamp 或 BLOB 列



Access软件网QQ交流群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助