SQL视图与基表的问题,高手》》》

来源:百度知道 编辑:UC知道 时间:2024/06/10 06:05:48
先看代码:

USE TempDB

CREATE TABLE t(c1 INT)

GO

CREATE VIEW v

AS
SELECT *FROM t WHERE c1>10

GO

INSERT v VALUES(5) ----->这里插入的数据对基表有影响吗?

SELECT * FROM v

ALTER VIEW v
AS
SELECT * FROM t
WHERE c1>10
WITH CHECK OPTION
GO
INSERT v VALUES(6)--->这里插入的数据对基表有影响吗?

INSERT v VALUES(60) ---->为什么在这里插入的数据大于10还不行?

UPDATE v SET c1=6 WHERE C1=60

DELETE v

SELECT * FROM t

我是新手,讲得越好懂,越详细越好,谢谢!

INSERT v VALUES(5) ----->这里插入的数据对基表有影响吗?
有影响,对于视图上的操作都会影响到基表

INSERT v VALUES(6)--->这里插入的数据对基表有影响吗?
应该会提示无法插入,因为有WITH CHECK OPTION 存在,所以只允许插入大于10的数

INSERT v VALUES(60) ---->为什么在这里插入的数据大于10还不行?
可以顺利插入

最后SELECT * FROM t 显示结果为C1小于等于10的数据