1表:pub_档案
字段:
xyid,成绩,状态,分类
2表:考试档案
字段:成绩,状态,id
3表:实习档案
字段:成绩,状态,id要求:表1中的成绩更新时,如果分类是1就更新表2中相对应记录的成绩和状态,如果是2就更新表3中相对应记录的成绩和状态。注明:表1中的分类只是1和2。
字段:
xyid,成绩,状态,分类
2表:考试档案
字段:成绩,状态,id
3表:实习档案
字段:成绩,状态,id要求:表1中的成绩更新时,如果分类是1就更新表2中相对应记录的成绩和状态,如果是2就更新表3中相对应记录的成绩和状态。注明:表1中的分类只是1和2。
For Update
As
Begin
If Update(成绩)
Begin
Update B Set 成绩 = A.成绩, 状态 = A.状态 From Inserted A Inner Join 考试档案 B On A.xyid = B.id Where A.分类 = 1
Update B Set 成绩 = A.成绩, 状态 = A.状态 From Inserted A Inner Join 实习档案 B On A.xyid = B.id Where A.分类 = 2
End
End
Create Table pub_档案
(xyid Int,
成绩 Int,
状态 Int,
分类 Int)Create Table 考试档案
(成绩 Int,
状态 Int,
id Int)Create Table 实习档案
(成绩 Int,
状态 Int,
id Int)
GO
--插入數據
Insert pub_档案
Select 1, 0, 1, 1
Union All Select 2, 0, 1, 2
Union All Select 3, 0, 1, 2Insert 考试档案 Select 0, 1, 1
Insert 实习档案 Select 0, 1, 2
Union All Select 0, 1, 3
GO
--建立觸發器
Create Trigger Update_TR On pub_档案
For Update
As
Begin
If Update(成绩)
Begin
Update B Set 成绩 = A.成绩, 状态 = A.状态 From Inserted A Inner Join 考试档案 B On A.xyid = B.id Where A.分类 = 1
Update B Set 成绩 = A.成绩, 状态 = A.状态 From Inserted A Inner Join 实习档案 B On A.xyid = B.id Where A.分类 = 2
End
End
GO
--測試
Update pub_档案 Set 成绩 = (Case 分类 When 1 Then 80 Else 90 End)Select * From 考试档案
Select * From 实习档案
GO
--刪除測試環境
Drop Table pub_档案, 考试档案, 实习档案
--結果
/*
成绩 状态 id
80 1 1成绩 状态 id
90 1 2
90 1 3
*/
不对呀
提示 列名 成绩 无效。
您能给解释一下 A 和 B 是什么意思吗
---------
“提示 列名 成绩 无效。”,你的表中有沒有“成绩”這一列,將其改為你的實際的列名。“您能给解释一下 A 和 B 是什么意思吗”, A, B只是表的表名.