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.什么意思?

解决方案 »

  1.   

    1.From BorrowRecord br , Deleted d ,Inserted i 这一句什么用?
    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.   

    你的语句是自己写的嘛!1、感觉这个触发器并没有实现你的问题
    2、i 是 Inserted  的别名
    3、BorrowRecord br , Deleted d  别名你要多看看SQL基础
      

  3.   

    接下来我要提问了,
    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表.这些都是基本知识.你得多看看联机帮助了.