亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sql7.sql

?? 微軟2005 sql是類程序原代碼
?? SQL
字號:
--------------------------------------
--									--
--				作業					--
--									--
--------------------------------------

--1	sql2005的觸發器是如何分類的?
	--答:sql2005的觸發器按大類分為:DML觸發器和DLL觸發器。而DML觸發器按照功能的不同分為AFTER觸發器 和INSTEAD OF觸發器;其中AFTER觸發器
	--又分為以下三種類型的觸發器:	INSERT 觸發器,UPDATE 觸發器,DELETE 觸發器.

--2	after觸發器和instead of觸發器,哪個在檢查列的約束前觸發,哪個后觸發?
	--答:在檢查列的約束后觸發;instead of觸發器在前觸發.其中,instead of觸發器在觸發前會先檢查有關語句是否符合檢查列的約束,
		--而after觸發器則不會。

--3	創建一個員工表和一個部門表,部門表的最后一個字段是部門人數,插入若干記錄,
--要求在員工表插入或刪除新記錄的同時,必須更新該員工所在部門的人數
--提示:分別建立一個insert觸發器和一個delete觸發器,員工表的部門列引用部門表的編號
use master 
go
if exists (select *from sysdatabases where name='Work')
	drop database Work
go
create database Work
go
use Work 
go
go
create table Section
(
	Scid int identity(1001,1) primary key,
	ScName varchar(20), 
	ScTatol int 
)
go
create table Employee 
(
	EyId int primary key,
	EyName varchar(10), 
	EyAge varchar(3),
	Scid int references Section
)
go

insert into Section values('財務部',3)
insert into Section values('生產部',3)
insert into Section values('設計部',2)
go
insert into Employee values(200278,'鄧斌',25,1001)
insert into Employee values(200279,'陶偉',35,1002)
insert into Employee values(200232,'周錦堂',45,1003)
insert into Employee values(200234,'金紅',26,1002)
insert into Employee values(200256,'李麗',21,1001)
insert into Employee values(200252,'陶蘭',54,1002)
insert into Employee values(200272,'王超',19,1003)
insert into Employee values(200270,'汪小芳',22,1001)

go
--------------------------------------------------------------
-------------     建立insert 觸發器    ----------------------
--------------------------------------------------------------
if exists (select *from Sysobjects where name='trg_insertWork')
	drop trigger trg_insertWork
go
create trigger trg_insertWork
on Employee
for insert 
as
	declare @id int
	set @id=(select Scid from inserted)
	update  Section set ScTatol=ScTatol+1 where Scid=@id
go

insert into Employee values(200254,'方勇',28,1003)
select *from Section
select *from Employee

--------------------------------------------------------------
-------------      建立delete  觸發器    --------------------
--------------------------------------------------------------
if exists (select *from sysobjects where name='trg_deletetWork')
	drop trigger trg_deleteWork
go
create trigger trg_deleteWork
on Employee 
for delete 
as
	declare @id int 
	set @id =(select Scid from deleted)
	update Section set ScTatol=ScTatol-1 where Scid=@id
go
delete from Employee where Eyname='方勇'
select *from Employee 
select *from Section 


--4	testpaper表存放的是所有試卷的信息,現在需要實現如下功能:
--試卷需要有足夠的數量,以保證考試的進行,
--如果有考試,相應試卷的數量就應該減少
--如語句:update testpaper set amount = amount - 40 where id = 102
--如果教務的老師復印了試卷,那么該試卷的數量就應該增加
--如語句:update testpaper set amount = amount + 30 where id = 124
--現要求編寫一個針對更新操作的觸發器,無論更新語句是+還是-
--如果更新后試卷的數量小于0,則不允許更新,提示‘試卷不夠,不能考試’
--如果更新后試卷的數量小于50,則提示‘試卷快用完了,請加印’
--如果更新后試卷的數量大于300,則提示‘試卷非常充足’
if exists (select *from sysobjects where name='testpaper')
	drop table testpaper
go
use Work
go
create table testpaper
(
	id int  identity(101,1) primary key,
	testType varchar(10),
	testNumber int 
)
go
insert into testpaper values('語文',350)
insert into testpaper values('英語',120)
insert into testpaper values('數學',32)
insert into testpaper values('理綜',65)
go
if exists (select *from sysobjects where name ='trg_update')
	drop trigger trg_update
go
create trigger trg_update
on testpaper
for update 
as
	declare @number int
	--declare @Amount int 
	--declare @id int
	set @number =(select testNumber from inserted)----更新后的語句
	--set @Amount =(select testNumber from deleted)----更新前的語句
	if @number <0
	begin
		raiserror('試卷不夠,不能考試.更新失?。。?#039;,3,101)
		rollback transaction 
	end
	else if @number <50
	begin
		print '試卷快用完了,請盡快復?。。?!'
	end
	else if @number >300
	begin
		print '試卷非常充足'
	end
go

update testpaper set testNumber =testNumber-10 where id=104
select *from testpaper


--5	student表的clsId列引用自class表的id列,根據外鍵約束,新插入學生
--信息的班級編號必須在class表中已經存在,現要求編寫一個觸發器,判斷新學生
--所在班級是否在class存在,如果存在,則插入學生信息,并提示‘已添加學生信息1條’
--如果不存在,則先在class表中插入該學生所在班級的記錄,然后再插入學生信息到
--student表中,并提示‘已添加學生信息1條,及班級信息1條’
--提示:想想使用after觸發器能否完成此功能,如果不能應當使用什么觸發器?
--該觸發器是針對哪個表的?是student表還是class表?

if exists (select *from sysobjects where name='StuInfo')
	drop table StuInfo
go
if exists (select *From sysobjects where name='Class')
	drop table Class
go
use Work
go
create table StuInfo
(
	Stuid int identity(1,1) primary key,
	StuName varchar(10),
	StuAge int ,
	StuSex varchar(2),
	clsid varchar(10) 
)
go
create table Class 
(
	id int identity(101,1) ,
	clsid varchar(10) primary key,
	Amount int 
)
go
alter table StuInfo add constraint  FK_StuInfo_clsid foreign key(clsid) references Class(clsid)
go
insert into Class values('0601',50)
insert into Class values('0602',45)
insert into Class values('0603',48)
insert into Class values('0604',27)
insert into Class values('0605',60)

go
insert into stuInfo values('曹陽',25,'男','0601')
insert into stuInfo values('陶偉',17,'男','0604')
insert into stuInfo values('汪小芳',20,'女','0603')
insert into stuInfo values('將小天',21,'男','0603')
insert into stuInfo values('李小麗',19,'女','0602')
insert into stuInfo values('周錦堂',23,'男','0601')
insert into stuInfo values('堂英',20,'女','0602')
insert into stuInfo values('劉德華',25,'男','0604')
insert into stuInfo values('劉翔',24,'男','0604')
insert into stuInfo values('陶嵐',25,'女','0603')
insert into stuInfo values('小李',18,'男','0601')
insert into stuInfo values('張翠山',19,'男','0602')

----------------------------------------------------------------------------------------------------
------------------------------------      使用after觸發器   ----------------------------------------
----------------------------------------------------------------------------------------------------
if exists (select *from sysobjects where name ='trg_insert')
	drop trigger trg_insert
go
create trigger trg_insert 
on StuInfo
for insert
as
	declare @Clsid	varchar(10)
	declare @erro int 
	set @erro=0
	set @Clsid =(select Clsid from inserted)
	if (@Clsid not in(select Clsid from Class))
	begin
		--update Class set Clsid=@Clsid,Amount=0 where(Clsid not in (select Clsid from Class))---不能這樣寫,為什么??
		insert into Class values(@Clsid,0)
		set @erro=@erro+@@error
		update Class set Amount=Amount+1 where Clsid=@Clsid
		set @erro=@erro+@@error
		if @erro<>0
		begin
			raiserror('插入失敗,操作中斷?。?#039;,3,110)
			rollback transaction 
		end
		else
			print '已添加學生信息1條及班級信息1條'
	end
	else
	begin
		update Class set Amount=Amount+1 where Clsid=@Clsid
		print '已添加學生信息1條及班級信息1條'
	end
go
select *from StuInfo
select *from Class
insert into stuInfo values('鄧來',20,'男','0609') 
delete from Class where Clsid=0606

----------------------------------------------------------------------------------------------------
------------------------------------      使用instead of 觸發器   ----------------------------------
----------------------------------------------------------------------------------------------------
select *from StuInfo
select *from Class 
 if exists(select *from sysobjects where name='trg_insteadof')]
	drop trigger trg_insteadof
go
create trigger trg_insteadof
on StuINfo
instead of
as
	 
go

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一卡二卡三卡| 三级精品在线观看| 久久精品国产免费| 91精品福利在线| 久久九九影视网| 久久精品久久综合| 欧美色精品在线视频| 国产精品天天摸av网| 中文字幕亚洲区| 亚洲欧美日韩在线不卡| 欧美成人精品福利| 久久国产精品72免费观看| 免费一区二区视频| 成人av网站免费| 国产成人免费高清| 欧美亚洲丝袜传媒另类| 欧美精品777| 久久精品网站免费观看| 亚洲第一久久影院| 美女性感视频久久| 国产精品资源网站| 欧美情侣在线播放| 国产精品乱码妇女bbbb| 人人狠狠综合久久亚洲| 91在线精品秘密一区二区| 91精品国产91久久久久久一区二区 | 国产一区二区不卡老阿姨| 91麻豆免费观看| 欧美精品一区二区三区蜜桃| 亚洲图片有声小说| 成人动漫av在线| 欧美不卡一区二区| 亚洲国产精品影院| 北条麻妃一区二区三区| 精品乱人伦小说| 午夜久久久久久| 北条麻妃一区二区三区| 久久久久久久免费视频了| 亚洲成人精品在线观看| www.在线欧美| 国产亚洲精品7777| 麻豆成人久久精品二区三区小说| 日本精品免费观看高清观看| 国产精品免费丝袜| 国产一区二区在线视频| 日韩一区二区精品葵司在线| 午夜精品久久久久久久久久久| 色综合网站在线| 国产欧美久久久精品影院 | 久久久久国色av免费看影院| 日韩精品一区第一页| 91国产福利在线| 亚洲人午夜精品天堂一二香蕉| 国产宾馆实践打屁股91| 精品久久久久久久久久久久久久久久久| 亚洲国产一区视频| 欧洲中文字幕精品| 亚洲精品视频在线| 一本色道久久综合精品竹菊| 中文字幕一区二区三区乱码在线| 国产精品小仙女| 久久久久国产精品免费免费搜索| 极品少妇xxxx精品少妇| 精品国产乱码久久久久久夜甘婷婷| 日韩 欧美一区二区三区| 欧美剧在线免费观看网站 | 欧美电影免费观看高清完整版在线观看| 亚洲成人免费电影| 欧美日韩一级二级| 午夜免费久久看| 欧美日韩一区二区三区视频| 性做久久久久久免费观看| 欧洲精品一区二区| 亚洲国产综合人成综合网站| 欧美老年两性高潮| 日韩福利电影在线观看| 91精品国产91热久久久做人人| 奇米888四色在线精品| 欧美成人午夜电影| 国产伦精品一区二区三区视频青涩| 欧美成人伊人久久综合网| 经典三级一区二区| 久久免费视频色| 国产91在线观看丝袜| 亚洲欧美在线高清| 日本高清视频一区二区| 性做久久久久久久久| 日韩精品一区二区三区四区视频 | 中文字幕一区视频| 色噜噜狠狠一区二区三区果冻| 亚洲自拍偷拍av| 欧美精品日日鲁夜夜添| 蜜桃视频免费观看一区| 久久久久久9999| av激情亚洲男人天堂| 亚洲国产精品一区二区久久恐怖片| 欧美精品乱码久久久久久按摩 | 久久蜜桃av一区精品变态类天堂| 国产精品99久久久久久有的能看| 国产精品天干天干在线综合| 欧美亚洲综合久久| 奇米精品一区二区三区在线观看一| 欧美精品一区二区久久久| 成人免费观看av| 亚洲一线二线三线久久久| 日韩一区二区视频| 国产精品一区二区三区网站| 亚洲蜜臀av乱码久久精品蜜桃| 欧美日韩一卡二卡三卡 | 久久精品人人做人人爽97| 91视频免费观看| 日本中文字幕不卡| 国产欧美日韩在线| 欧美日韩午夜影院| 国产精品18久久久久久久久久久久| 亚洲欧美激情一区二区| 91精品国产综合久久久久久| 国产成人日日夜夜| 亚洲成人免费视| 亚洲国产激情av| 欧美另类变人与禽xxxxx| 国内精品久久久久影院薰衣草| 亚洲天堂av老司机| 日韩美女一区二区三区| 99久久精品免费| 另类调教123区 | 777亚洲妇女| 成人精品免费网站| 欧美aⅴ一区二区三区视频| 国产精品久久久久四虎| 日韩亚洲欧美一区| 色哟哟一区二区在线观看| 国模套图日韩精品一区二区| 亚洲一区二区四区蜜桃| 国产色综合久久| 91麻豆精品国产91久久久 | 悠悠色在线精品| 337p粉嫩大胆噜噜噜噜噜91av| 日本韩国视频一区二区| 国产成人精品三级麻豆| 夜色激情一区二区| 亚洲国产精品99久久久久久久久| 日韩一区二区三区免费观看 | 午夜影院久久久| 国产精品国产自产拍在线| 日韩精品一区二区三区三区免费| 99久久精品一区二区| 国产精品1区2区3区在线观看| 丝袜国产日韩另类美女| 亚洲女女做受ⅹxx高潮| 久久精品日产第一区二区三区高清版| 欧美蜜桃一区二区三区| 一本久久a久久精品亚洲 | 亚洲精品乱码久久久久久黑人 | 色狠狠av一区二区三区| 国产精品自产自拍| 蜜臀av性久久久久蜜臀aⅴ四虎 | 欧美一区二区免费| 在线观看亚洲a| 91色在线porny| 成人av资源在线| 国产成人av在线影院| 久草在线在线精品观看| 日韩精品亚洲一区二区三区免费| 一区二区三区四区不卡在线| 国产精品黄色在线观看| 国产欧美日韩卡一| 国产人成亚洲第一网站在线播放 | 国产福利一区在线| 免费成人av在线| 天堂蜜桃一区二区三区| 亚洲成人黄色影院| 亚洲高清免费视频| 亚洲高清在线视频| 亚洲成av人片在www色猫咪| 亚洲一区二区三区四区五区黄| 亚洲欧美一区二区三区国产精品 | 在线观看欧美日本| 在线视频一区二区免费| 欧洲av一区二区嗯嗯嗯啊| 91网站在线播放| 色婷婷av一区| 欧美性猛交xxxxxx富婆| 欧美视频一区二| 欧美日韩激情在线| 这里只有精品视频在线观看| 91精品国产高清一区二区三区| 欧美肥胖老妇做爰| 日韩写真欧美这视频| 精品区一区二区| 2024国产精品视频| 国产精品无人区| 亚洲激情综合网| 亚洲bdsm女犯bdsm网站| 视频在线观看一区| 日本女优在线视频一区二区| 美国av一区二区| 国产精品一二三四| 成人精品一区二区三区四区| 色综合天天综合|