关于数据库的触发器问题:触发器是创建在Student表中的,但是更新的是Grade这个表
请问应该操作Student这个表还是Grade这个表呢?还有就是怎么知道触发器是否被触发?CREATETriggertriStudentOnStudentafterUpd...
请问应该操作Student这个表还是Grade这个表呢?还有就是怎么知道触发器是否被触发?
CREATE Trigger triStudent
On Student
after Update
as
if Update (StudentID)
begin
update Grade
Set StudentID=I.StudentID
from Grade,Deleted D,Inserted I
Where Grade.StudentID=D.StudentID
end 展开
CREATE Trigger triStudent
On Student
after Update
as
if Update (StudentID)
begin
update Grade
Set StudentID=I.StudentID
from Grade,Deleted D,Inserted I
Where Grade.StudentID=D.StudentID
end 展开
1个回答
推荐于2021-02-28
展开全部
该操作Student这个表
看看你的代码逻辑。
应该就是, 当修改 Student这个表 的学号的时候。
去把 Grade 表的 这个学生的所有旧有的记录, 同步关联更新掉。
例如
Student 表
姓名 学号
张三 Z03
Grade 表
课程 学号 成绩
语文 Z03 90分
数学 Z03 80分。
当
UPDATE Student SET StudentID = ‘X03’ WHERE StudentID = 'Z03'
执行后。
触发器要去 更新成绩表 Grade
课程 学号 成绩
语文 X03 90分
数学 X03 80分
怎么知道触发器是否被触发?
那就是 更新完 Student 后 , 去 Grade 表核对数据。
看看你的代码逻辑。
应该就是, 当修改 Student这个表 的学号的时候。
去把 Grade 表的 这个学生的所有旧有的记录, 同步关联更新掉。
例如
Student 表
姓名 学号
张三 Z03
Grade 表
课程 学号 成绩
语文 Z03 90分
数学 Z03 80分。
当
UPDATE Student SET StudentID = ‘X03’ WHERE StudentID = 'Z03'
执行后。
触发器要去 更新成绩表 Grade
课程 学号 成绩
语文 X03 90分
数学 X03 80分
怎么知道触发器是否被触发?
那就是 更新完 Student 后 , 去 Grade 表核对数据。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询