SQL语言视图更新

为什么使用INSERT INTO V_SPJ
VALUES('S1','P6','200')后在视图中没有显示?
而用UPDATE对视图进行更新虽然提示命令成功却没有任何行被修改呢?
那如果视图是对一个以上的表的引用,如何进行修改呢?
最新回答
梨涡少年我的梦

2026-06-12 23:23:29

INSERT语句向视图插入数据,但应该注意的是:插入的数据实际上存放在基表中,而不是视图中;
updare好象不行,需要用到另一语句(忘了,呵呵)
夏树繁花

2026-05-20 07:55:35

只能修改其中一个表中的数据

任何修改(包括 UPDATE、INSERT 和 DELETE 语句)都只能引用一个基表的列。

视图中被修改的列必须直接引用表列中的基础数据。它们不能通过其他方式派生,例如通过:

聚合函数(AVG、COUNT、SUM、MIN、MAX、GROUPING、STDEV、STDEVP、VAR 和 VARP)。

计算,不能通过表达式并使用列计算出其他列。使用集合运算符(UNION、UNION ALL、CROSSJOIN、EXCEPT 和 INTERSECT)形成的列得出的计算结果不可更新。

正在修改的列不受 GROUP BY、HAVING 或 DISTINCT 子句的影响。

更详细信息请参考联机丛书