sql server 2008的触发器:以下是一个触发器,请问以下代码中的if Update(StudentID)表示什么意思?
CREATETriggertriStudentOnStudentafterUpdateasifUpdate(StudentID)beginupdateGradeSetSt...
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 展开
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个回答
2013-01-06
展开全部
UPDATE
返回一个布尔值,指示是否对表或视图的指定列进行了 INSERT 或 UPDATE 尝试。可以在 Transact-SQL INSERT 或 UPDATE 触发器主体中的任意位置使用 UPDATE(),以测试触发器是否应执行某些操作。
对于你的触发器.
如果
UPDATE Student SET StudentID = ... WHERE ...
那么, 这个时候 Update (StudentID) 返回 true
如果
UPDATE Student SET 其他字段 = ... WHERE ...
那么, 这个时候 Update (StudentID) 返回 flase
你这个触发器的逻辑, 基本上就是, 如果更新了 学生表的 学号。
那么 就要同步更新 成绩表中的学号
返回一个布尔值,指示是否对表或视图的指定列进行了 INSERT 或 UPDATE 尝试。可以在 Transact-SQL INSERT 或 UPDATE 触发器主体中的任意位置使用 UPDATE(),以测试触发器是否应执行某些操作。
对于你的触发器.
如果
UPDATE Student SET StudentID = ... WHERE ...
那么, 这个时候 Update (StudentID) 返回 true
如果
UPDATE Student SET 其他字段 = ... WHERE ...
那么, 这个时候 Update (StudentID) 返回 flase
你这个触发器的逻辑, 基本上就是, 如果更新了 学生表的 学号。
那么 就要同步更新 成绩表中的学号
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询