if exists(select * from sysobjects where name='proc_1')
drop proc proc_1
go
drop table score1
--成绩表
CREATE TABLE score1
(
id1 int primary key identity,
sid varchar(50),
cid varchar(50),
score1 int
)
insert into score1 values(10000);
insert into score1 values('20111103090101','301',95);
insert into score values('20111103090101','302',95);
insert into score values('20111103090101','304',95);
insert into score values('20111103090102','301',75);
insert into score values('20111103090102','304',85);
insert into score values('20111103090103','301',88);
insert into score values('20111103090103','302',88);
insert into score values('20111103090103','303',88);
select * from score
select * from score1
--视图被看成是虚拟表,它并不代表任何的物理数据,只是用来查看数据的视窗
--视图结果是表数据,没有复杂处理的单表是可以修改的,如min求最小数,不是正常数据结果集,则不可以修改
--视图有两张基表,插入数据则会影响到两张表,故不能插入
--总之,若视图结果是一张正常的表数据,没有聚合函数等,都是可以修改的
--创建视图
create view view_1
as
select * from score, score1
go
update view_1 set score1=88 from view_1 where score=88