--select 查詢出來的結果集能夠經過as 起別名當作虛擬表來用 select*from (select*from score ,grade where score.degree between low and upp)as jibietable where rank='A' --建立視圖(視圖只能創建在實體表的基礎上) create view shitu1 as select student.sname,student.sno,score.degree from student,score where student.sno=score.sno go create view shitu2 as select*from (select*from score ,grade where score.degree between low and upp)as jibietable where rank='A' go --修改視圖 alter view shitu2 as select *from student go select *from shitu2 --刪除視圖 drop view shitu1數據庫
--觸發器---特殊的存儲過程。經過增刪改數據庫表來自動引起 alter trigger TR_Student_Insert on student--在哪一個表上創建觸發器 for insert--for是新增以後觸發,for還能夠寫成after as begin update student set sname='楊波' where sname='金拓' end go insert into student values(304,'楊嶽','男','1990-07-21','95033') select *from student事務
-- alter trigger TR_Student_Delete on student instead of delete as begin declare @sno int select @sno=sno From deleted delete from score where sno=@sno delete from student where sno=@sno end go delete from Student where Sno=304 select *from student insert into Score values(304,'3-105',98)get
-- drop trigger TR_Student_insert create trigger TR_student_inserted on student instead of insert as begin declare @sno int,@sname varchar(20),@ssex varchar(20), @sbirthday datetime, @class varchar(20) select @sno=sno,@sname=sname,@ssex=ssex,@sbirthday=sbirthday,@class=class from inserted if @ssex='男' begin set @ssex='1' end insert into student values(@sno,@sname,@ssex,@sbirthday,@class) end go insert into student values(303,'金拓','男','1992-07-21','95033') select *from studentit
--事務 select *from huowu begin tran--事務的開始 --開始寫流程語句table
--語句寫完以後 if @@ERROR>0 rollback tran--回滾事務 else commit tran--提交事務 goto tranrollback --去往目標地 select*from student select*from score begin tran delete from score where sno=107 delete from student where sno=109 if @@ERROR>0 begin rollback tran end else begin commit tran endclass