我正在尝试编写执行以下
的插入触发器我有会员表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
谢谢
答案 0 :(得分:0)
如果您正在谈论MS SQL Server,可以使用INSERTED视图在触发器中获取插入/更新的行。然后,您可以调用存储过程来实现它。