插入触发器以更新第二个表

时间:2015-08-23 09:14:50

标签: sql sql-server triggers

我正在尝试编写执行以下

的插入触发器

我有会员表T1(ID,分数,性别)和匹配表T2(ID1,ID2,Dscore)。这两个表最初是空的。当在T1上进行插入时,触发器将触发,以便根据插入T1中的行将信息插入到表T2中。如果T1上的插入是第一行,则不会将任何内容插入T2。如果将后续行插入T1,则插入行与T1中任何先前行之间的分数(绝对值)差异将插入T2,前提是它具有不同的性别(男性= 1,女性= 0)。下面是几个例子

插入成员值(1,5,1)

ID         score       sex
 1            5           1

第一行所以对表T2没有任何动作

ID1        ID2        Dscore

插入成员值(2,6,0)

 ID         score       sex
    1           5               1
    2           6               0

Second row and opposite sex type, so insert all the possible differences
ID1        ID2        Dscore
2            1             1

插入成员值(3,7,1)

ID         score       sex
    1           5           1
    2           6           0
    3           7           1


ID1        ID2        Dscore
    2             1          1
    3             2          1

我被困在可以将ID2和Dscore插入t2的部分。这是我到目前为止所写的

   CREATE TRIGGER MEMBER_INSERT_TRI
ON Employee.Dbo.T_1 
After INSERT AS 
Declare @ID int 
Select @ID = (Select ID from inserted)
IF @ID > 1
Begin 
Declare @ID2 as int 
Set @ID2 = @ID2 +1
Insert into Employee.dbo.T_2 
(
    ID1,
    ID2,
    Score
)

Select 
ID,
@ID2,
Score
From 
    Inserted
END

谢谢

1 个答案:

答案 0 :(得分:0)

如果您正在谈论MS SQL Server,可以使用INSERTED视图在触发器中获取插入/更新的行。然后,您可以调用存储过程来实现它。