
SQL触发器练习题求解
设有一个成绩表,其中包含学生学号,姓名,平时成绩,期中成绩,期末成绩,以及总评。学号为int类,平时成绩,期中成绩,期末成绩,总平是numeric(5,2),触发器完成插...
设有一个成绩表,其中包含学生学号,姓名,平时成绩,期中成绩,期末成绩,以及总评。学号为int类,平时成绩,期中成绩,期末成绩,总平是numeric(5,2),触发器完成插入数据时在自动计算总评,对成绩表的平时成绩,期中成绩,期末成绩更新时,自动冲in计算总评
展开
1个回答
展开全部
Create TRIGGER 成绩表_TRIG ON 成绩表 FOR INSERT , UPDATE
AS
BEGIN
SET NOCOUNT ON
Declare @InsertedCount Int
Declare @DeletedCount Int
Set @InsertedCount = (Select Count(*) From Inserted)
Set @DeletedCount = (Select Count(*) From Deleted)
If (@InsertedCount>0) Begin
UPDATE 成绩表 SET 成绩表.总评 = 成绩表.平时成绩 + 成绩表.期中成绩 + 成绩表.期末成绩 From Inserted Where 成绩表.学号=Inserted.学号
End
If (@DeletedCount>0) Begin
UPDATE 成绩表 SET 成绩表.总评 = 成绩表.平时成绩 + 成绩表.期中成绩 + 成绩表.期末成绩 From Deleted Where 成绩表.学号=deleted.学号
End
SET NOCOUNT OFF
END
AS
BEGIN
SET NOCOUNT ON
Declare @InsertedCount Int
Declare @DeletedCount Int
Set @InsertedCount = (Select Count(*) From Inserted)
Set @DeletedCount = (Select Count(*) From Deleted)
If (@InsertedCount>0) Begin
UPDATE 成绩表 SET 成绩表.总评 = 成绩表.平时成绩 + 成绩表.期中成绩 + 成绩表.期末成绩 From Inserted Where 成绩表.学号=Inserted.学号
End
If (@DeletedCount>0) Begin
UPDATE 成绩表 SET 成绩表.总评 = 成绩表.平时成绩 + 成绩表.期中成绩 + 成绩表.期末成绩 From Deleted Where 成绩表.学号=deleted.学号
End
SET NOCOUNT OFF
END

2023-03-29 广告
日本OPTEX FA光电传感器产品已在中国大陆销售了近30年,产品的高性价比已被广大客户所认可。为更好的服务广大客户,日本株式会社(OPTEX FA)于2013年成立广州奥泰斯工业自动化控制设备有限公司,作为OPTEX FA中国区总部。日本...
点击进入详情页
本回答由广州奥泰斯工业自动化控制设备有限公司_提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询