SQL2008中关于视图的修改问题

双鱼座的朱 发布于 2013/05/09 08:45
阅读 1K+
收藏 0

用SQL2008创建了一个Student数据库,在里边建立一个view_IS_Student视图,使用了如下语句:

CREATE VIEW view_IS_Student(Sno, Sname, Sage)AS SELECT Sno,Sname,Sage FROM Student WHERE Sdept='IS' WITH CHECK OPTION ;  //注:Sdept=‘IS’是属于信息系的意思。

视图创建成功后,要在该视图中插入元组,如下代码:

INSERT INTO view_IS_Student(Sno,Sname,Sage) VALUES('95005','陈明',21);

此时出现错误“不能将值 NULL 插入列 'Sdept',表 'student.dbo.Student';列不允许有 Null 值。INSERT 失败。


” 我知道使用了with check option 语句后,就对该视图进行了约束,但是为什么会出现不允许插入空值的错误呢?我把 with check option 语句删除之后,再插入元组,还是会出现同样的错误,请教大家一下,到底是哪里出了问题?



加载中
0
魔力猫
魔力猫
视图本身其实就是一条SQL,本身是没有数据的。你所谓的插入其实是对Student表的插入,Student表sdept字段不能为Null。
0
双鱼座的朱
双鱼座的朱
题目要求插入 Sno Sname Sage 这几个属性,没要求插入Sdept字段,我在insert into的时候,加入sdept 的话 出现了错误。。
返回顶部
顶部