可更新视图
来源:互联网 发布:js怎么获取当前时间戳 编辑:程序博客网 时间:2024/04/30 04:35
Microsoft SQL Server 2000 以两种方法增强可更新视图的类别: INSTEAD OF 触发器:可以在视图上创建 INSTEAD OF 触发器,以使视图可更新。执行 INSTEAD OF 触发器,而不是执行定义触发器的数据修改语句。该触发器使用户得以指定一套处理数据修改语句时需要执行的操作。因此,如果在给定的数据修改语句(INSERT、UPDATE 或 DELETE)上存在视图的 INSTEAD OF 触发器,则通过该语句可更新相应的视图。有关 INSTEAD OF 触发器的更多信息,请参见设计 INSTEAD OF 触发器。
分区视图:如果视图属于称为"分区视图"的指定格式,则该视图的可更新性受限于某些限制。本主题稍后将讨论分区视图及其可更新性。
必要时,SQL Server 将"本地分区视图"辨别为所有参与表和视图都在同一 SQL Server 上的视图,而将"分布式分区视图"辨别为视图中至少有一个表驻留在不同(远程)服务器上的视图。
如果视图没有 INSTEAD OF 触发器,或者视图不是分区视图,则视图只有满足下列条件才可更新:
select_statement 在选择列表中没有聚合函数,也不包含 TOP、GROUP BY、UNION(除非视图是本主题稍后要描述的分区视图)或 DISTINCT 子句。聚合函数可以用在 FROM 子句的子查询中,只要不修改函数返回的值。有关更多信息,请参见聚合函数。
select_statement 的选择列表中没有派生列。派生列是由任何非简单列表达式(使用函数、加法或减法运算符等)所构成的结果集列。
select_statement 中的 FROM 子句至少引用一个表。select_statement 必须不仅只包含非表格格式的表达式(即不是从表派生出的表达式)。例如,以下视图是不可更新的:
CREATE VIEW NoTable AS
SELECT GETDATE() AS CurrentDate,
@@LANGUAGE AS CurrentLanguage,
CURRENT_USER AS CurrentUser
INSERT、UPDATE 和 DELETE 语句在可以引用可更新视图之前,也必须如上述条件指定的那样满足某些限制条件。只有当视图可更新,并且所编写的 UPDATE 或 INSERT 语句只修改视图的 FROM 子句引用的一个基表中的数据时,UPDATE 和 INSERT 语句才能引用视图。只有当视图在其 FROM 子句中只引用一个表时,DELETE 语句才能引用可更新的视图。
- 可更新视图
- 可更新视图
- [朝花夕拾]可更新视图
- 可更新视图
- 可更新视图及其规则
- 可更新视图的说明
- 可更新物化视图复制站点
- 使MSSql Server 视图可更新
- 高级复制双向可更新视图
- SQL92,SQL SERVER,ORACLE,DB2可更新视图概述
- Sql Server每日一练-可更新视图(Updateble views)
- SQL92,SQL SERVER,ORACLE,DB2可更新视图概述
- 视图更新
- 更新视图
- 视图,物化视图,更新
- java 矢量绘图程序,多文档视图,文档间拖拽,可导出成位图文件,可在线更新
- 更新所有的视图
- 视图更新的限制
- JSP中的Cookie
- Cookie跨域操作
- Grails-学习资料汇总
- javascript浏览器兼容性(不断更新中)
- 我的读书
- 可更新视图
- 女儿开始认汉字啦
- WebSphere MQ
- 看见的,看不见了;记住的,遗忘了;看不见的,看见了;遗忘的,记住了。
- linux 2.6.24 makefile文件基本介绍
- 内核抢占
- 操作系统内存优化方法总结
- 记离职同事给我们的建议之一:关于人员培养方面的思考
- 抓住试用的机会