Student
  XH        XM     RXRQ      
601226      a    20040601
601227      b    20040601
 
StuZyB
 XH         ZID
601226       11
601227       11StuXxxsB
  XH       XXXS
601226      夜大
601227      夜大Course
ND       ZID    XXXS   CID   CName
2004      11     夜大  1111    网络Score
CID    XH    CJ我在Course插入 (2004,11,夜大,1111,网络)的时候,
要求能在Score中插入对应的(1111,601226)  (1111,601227)**********************************
CREATE TRIGGER Course_insert ON Course 
FOR INSERT 
AS
DECLARE @CND varchar(4)
DECLARE @CZID varchar(5)
DECLARE @CXXXS varchar(10)
DECLARE @CCID varchar(5)
INSERT INTO Score(CID,XH) 
 SELECT T.CID,StuZyB.XH FROM Student, StuZyB, StuXxxsB,INSERTED T
WHERE (Student.RXRQ  LIKE  T.ND+'%' ) AND (StuXxxsB.XXXS = T.XXXS) AND (StuZyB.ZID = T.ZID)
***************************************
可是在插入值的时候,Score弹出错误说不能插入重复值,我想应该是把同一个学号多次插入进去了,该如何更改触发器呢

解决方案 »

  1.   

    说明一下
    Student
      XH(学号)       XM(姓名)     RXRQ(入学日期)      
    601226                a             20040601
    601227                b             20040601
     
    StuZyB
     XH(学号)         ZID(专业号)
      601226               11
      601227               11StuXxxsB
      XH(学号)       XXXS(学习形式)
       601226               夜大
       601227               夜大Course
    ND(入学年度)   ZID(专业号)    XXXS(学习形式)   CID(课程号)   CName(课程名)
      2004                 11              夜大               1111            网络Score
     CID(课程号)    XH(学号)    CJ(成绩)我在Course插入 (2004,11,夜大,1111,网络)的时候,
    要求能在Score中插入对应的(1111,601226)  (1111,601227)************************
    入学年度、专业号和学习形式能对应到唯一班级的
      

  2.   

    INSERT INTO Score(CID,XH) 
     SELECT T.CID,StuZyB.XH FROM Student, StuZyB, StuXxxsB,INSERTED T
    WHERE (Student.RXRQ  LIKE  T.ND+'%' ) AND (StuXxxsB.XXXS = T.XXXS) AND (StuZyB.ZID = T.ZID)=========>
    INSERT INTO Score(CID,XH) 
     SELECT T.CID,StuZyB.XH FROM Student, StuZyB, StuXxxsB,INSERTED T
    WHERE Student.xh=StuZyB.xh and Student.xh=StuXxxsB.xh and
    (Student.RXRQ  LIKE  T.ND+'%' ) AND (StuXxxsB.XXXS = T.XXXS) AND (StuZyB.ZID = T.ZID)
      

  3.   

    INSERT INTO Score(CID,XH) 
     SELECT T.CID,StuZyB.XH FROM Student, StuZyB, StuXxxsB,INSERTED T
    WHERE (Student.RXRQ  LIKE  T.ND+'%' ) AND (StuXxxsB.XXXS = T.XXXS) AND (StuZyB.ZID = T.ZID)=========>
    INSERT INTO Score(CID,XH) 
     SELECT T.CID,StuZyB.XH FROM Student, StuZyB, INSERTED T
    WHERE Student.xh=StuZyB.xh 
    and (Student.RXRQ  LIKE  T.ND+'%' ) 
    AND (StuZyB.ZID = T.ZID)
      

  4.   

    INSERT INTO Score(CID,XH) 
     SELECT T.CID,StuZyB.XH FROM Student, StuZyB, INSERTED T
    WHERE (Student.RXRQ  LIKE  T.ND+'%' ) AND (StuZyB.ZID = T.ZID) and student.xh = StuZyB.XH