2016 - 2024

感恩一路有你

sql出现列名无效的原因 如何更新视图中的数据?

浏览量:2742 时间:2021-03-15 17:12:18 作者:admin

如何更新视图中的数据?

更新视图有三条规则:(1)如果使用连接操作基于多个表导出视图,则每次更新视图时,只有一个表会受到影响。(2) 如果使用分组和聚合操作导出视图,则不允许更新视图。(3) 如果视图是通过选择和投影从表中派生出来的,并且在视图中包含表的主键或候选键,则这种视图称为行-列-子集视图。可以对这些视图执行更新。只有满足以下条件时才能更新视图:1。select语句在选择列表中没有聚合函数,也不包含top、group by、Union(除非视图已分区)或distinct子句。只要不修改from子句返回的值,就可以在子查询中使用聚合函数。2select语句的select列表中没有派生列。派生列是由任何非简单列表表达式(使用函数、加法或减法运算符等)组成的结果集列。三。select语句中的from子句至少引用了一个表。select语句不能只包含非表格式表达式(即不是从表派生的表达式)。4在insert、update和delete语句引用可更新视图之前,它们必须满足上述条件中指定的某些限制。只有当视图可以更新并且update或insert语句只修改视图的from子句引用的基表中的数据时,update和insert语句才能引用视图。只有当视图在from子句中只引用一个表时,delete语句才能引用可更新视图

视图是VFP提供的强大的数据处理功能。使用view,不仅可以从数据表中提取一组记录,还可以在必要时更改记录值,并在源数据表中反映更新的结果。但是VFP中的新视图无法更新。我们需要修改视图的属性来更新它。在更新视图之前,需要在视图中至少选择一个更新属性选项。

2. 在实际应用中,我们经常需要临时生成一个视图,因此我们必须使用程序来修改视图的属性,以便对其进行更新,例如:使用xjmonthcreate SQL view xjview as select*from xjmonth where department name=ksmuse Xjviewcursorsetprop(“keyfieldlist”,“name”*设置视图和基表对应的键字段。关键字字段必须是唯一的,否则在发送SQL更新时会出错。Cursorsetprop(“sendupdates”,。T.)*打开SQL update开关以启用视图来更新基表。此外,cursorsetprop函数还可以用来设置update字段(默认值为all fields)、基表别名、update方法等属性,但实际上大部分默认值都可以满足需要。您只需要设置关键字并打开SQL update开关。另一个使地图识别可更新的函数是dbsetprop(),它可以为当前数据库或当前数据库中的字段、命名连接、表或视图设置属性。然而,dbsetprop()要求独占当前数据库,而cursortsetprop()可以修改远程视图或临时表的属性,因此还涉及缓冲访问和更新。此外,它们之间还存在一些语法差异。

sql出现列名无效的原因 数据库对象名无效怎么解决 视图怎么插入数据

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。