
【明细分数表】的数据:

2.2.运算记录【综合分数表】的数据:
插入【ZHONGHE_TAB】中的数据
USE [SQL-LI]--声明3个变量分别用来接收【平均分】,【总分】,【姓名】,和一个控制循环的条件变量@I_WHILE_XUEHAO
DECLARE @I_WHILE_XUEHAO INT,@ZONGFEN DECIMAL(4,1),@AVGFEN DECIMAL(3,1),@XINGMING NVARCHAR(10);
SELECT @I_WHILE_XUEHAO =6080;
--使这个变量【@I_WHILE_XUEHAO】的值指定在【学号】字段上
WHILE(@I_WHILE_XUEHAO >=6080 AND @I_WHILE_XUEHAO <6085)
BEGIN
--求取【平均分】,【总分】,【姓名】并存在声明的变量中
SELECT @ZONGFEN =(F.语文 +F.数学 +F.英语 ),@AVGFEN =(F.语文 +F.数学 +F.英语 )/3,@XINGMING =X.姓名
FROM[DBO].XINXIN_TAB AS X INNER JOIN [DBO].FENSHU_TAB AS F ON X.学号 =F.学号
WHERE X.学号 =@I_WHILE_XUEHAO --与【学号同步】
--将其变量的数据插入到【ZHONGHE_TAB】的对应字段上
INSERT INTO [DBO].ZHONGHE_TAB ([姓名] ,[学号] ,[平均分] ,[总分] )
VALUES(@XINGMING ,@I_WHILE_XUEHAO ,@AVGFEN ,@ZONGFEN )
SELECT @I_WHILE_XUEHAO +=1; --与【学号同步】
END
GO【综合分数表】的数据:

3.1.1.创建3个表关联的视图:
USE [SQL-LI]GO
CREATE VIEW SHITU_FFENSHU_XINXI(姓名,学号,平均分,总分,班级,出生日期)
AS
SELECT TOP 800 X.姓名 ,F.学号 ,Z.平均分 ,Z.总分 ,X.班级 ,X.出生日期
FROM[DBO].XINXIN_TAB AS X INNER JOIN [DBO].FENSHU_TAB AS F ON X.学号 =F.学号
INNER JOIN [DBO].ZHONGHE_TAB AS Z ON F.学号 =Z.学号
ORDER BY F.学号 ASC
GO查看创建的视图:

3.2.1.通过视图修改多个数据表的信息????:
UPDATE [SQL-LI].[dbo].[SHITU_FFENSHU_XINXI]SET [姓名] = 'aaaaa', --此字段在【信息表】中
[平均分] =111 --此次字段在【分数】中
WHERE [学号]=6080
GO结果:


下面就写个利用触发器对其多表进行更新的方法:










