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
我是新手,讲得越好懂,越详细越好,谢谢!
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的数据