sqlserver里怎么向视图里插入数据

Otovky 2020-09-14 09:43:30
Create table sc(sno char(8),
cno char(6),
grade Smallint,
year char(4),
primary key(sno, cno, year),
FOREIGN KEY(sno)REFERENCES s(sno)on delete cascade,
FOREIGN KEY(cno)REFERENCES course(cno)on delete cascade,
CHECK ((grade IS NULL) OR (grade BETWEEN 0 AND 100))
);


create view View_80 as select sno, cno,grade from sc where sc.grade>80 with check option

insert into View_80
values ('08300010','801',87)
报错为:
消息 515,级别 16,状态 2,第 127 行
不能将值 NULL 插入列 'year',表 'master.dbo.sc';列不允许有 Null 值。INSERT 失败。
...全文
1364 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
二月十六 2020-09-15
  • 打赏
  • 举报
回复
视图是一个select语句,它不是真正存储数据的,应该是给sc这个表插入数据 insert into sc(sno, cno,grade) values ('08300010','801',87)
卖水果的net 2020-09-15
  • 打赏
  • 举报
回复
两个办法: 1、在视图上建立“替代触发器” 2、给 year 字段一个默认值。

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧