Create Table Student( --学生表
StudentID int primary key, --学号
....
) Create Table BorrowRecord( --学生借书记录表
BorrowRecord int identity(1,1), --流水号
StudentID int , --学号
BorrowDate datetime, --借出时间
ReturnDAte Datetime, --归还时间
...
) 用到的功能有:
1.如果我更改了学生的学号,我希望他的借书记录仍然与这个学生相关(也就是同时更改借书记录表的学号);
2.如果该学生已经毕业,我希望删除他的学号的同时,也删除它的借书记录。
等等。 这时候可以用到触发器。对于1,创建一个Update触发器: Create Trigger truStudent
On Student --在Student表中创建触发器
for Update --为什么事件触发
As --事件触发后所要做的事情
if Update(StudentID)
begin Update BorrowRecord
Set StudentID=i.StudentID
From BorrowRecord br , Deleted d ,Inserted i --Deleted和Inserted临时表
Where br.StudentID=d.StudentID end
接下来我要提问了,
1.From BorrowRecord br , Deleted d ,Inserted i 这一句什么用?
2.Set StudentID=i.StudentID 里,studentID前面的i.是什么意思?
3.Where br.StudentID=d.StudentID同样前面的br和d.什么意思?
StudentID int primary key, --学号
....
) Create Table BorrowRecord( --学生借书记录表
BorrowRecord int identity(1,1), --流水号
StudentID int , --学号
BorrowDate datetime, --借出时间
ReturnDAte Datetime, --归还时间
...
) 用到的功能有:
1.如果我更改了学生的学号,我希望他的借书记录仍然与这个学生相关(也就是同时更改借书记录表的学号);
2.如果该学生已经毕业,我希望删除他的学号的同时,也删除它的借书记录。
等等。 这时候可以用到触发器。对于1,创建一个Update触发器: Create Trigger truStudent
On Student --在Student表中创建触发器
for Update --为什么事件触发
As --事件触发后所要做的事情
if Update(StudentID)
begin Update BorrowRecord
Set StudentID=i.StudentID
From BorrowRecord br , Deleted d ,Inserted i --Deleted和Inserted临时表
Where br.StudentID=d.StudentID end
接下来我要提问了,
1.From BorrowRecord br , Deleted d ,Inserted i 这一句什么用?
2.Set StudentID=i.StudentID 里,studentID前面的i.是什么意思?
3.Where br.StudentID=d.StudentID同样前面的br和d.什么意思?
Deleted 和 Inserted 是触发器的两个临时表,deleted记录了修改和删除的记录,inserted记录了新增和修改的记录,而在update触发器上这两个表则分别记录了修改前的记录(deleted)和修改后的记录(inserted)2.Set StudentID=i.StudentID 里,studentID前面的i.是什么意思?i是给inserted表起的别名
3.Where br.StudentID=d.StudentID同样前面的br和d.什么意思? d给deleted表的别名
2、i 是 Inserted 的别名
3、BorrowRecord br , Deleted d 别名你要多看看SQL基础
1.From BorrowRecord br , Deleted d ,Inserted i 这一句什么用?触发器综述(Haiwer)
http://topic.csdn.net/u/20081005/11/57061a18-c234-40ee-ba4b-1f4c3bc7f09a.htmlT-MAC学习笔记19之--浅谈触发器
http://topic.csdn.net/u/20091203/20/ef22e48d-4560-437e-9500-6efa4044284d.html?411062.Set StudentID=i.StudentID 里,studentID前面的i.是什么意思?
别名.实际指的是inserted表.3.Where br.StudentID=d.StudentID同样前面的br和d.什么意思?
br和d都是别名.
br 对应BorrowRecord表,d 对应deleted表.这些都是基本知识.你得多看看联机帮助了.