Sql Insert Trigger with counts

时间:2014-03-23 20:37:25

标签: sql sql-server

我需要为我正在处理的数据库创建一个触发器,但是创建这些数据库的经验很少。触发器用于插入命令,但如果一个UserId上的插入数大于30,我需要在此之后添加任何名为audit的表。我从哪里开始?

CREATE  TRIGGER trigger_audit
On INSERT
   ON Persons
   [ FOR EACH ROW ]
DECLARE
   -- variable declarations
BEGIN
   -- trigger code
EXCEPTION
   WHEN ...
   -- exception handling
END;

1 个答案:

答案 0 :(得分:0)

"我将从哪里开始?"

我会从这样的事情开始:

WITH UserInserts AS (
 SELECT [SomeUniqueId]
       ,ROW_NUMBER() OVER (PARTITION BY UserID ORDER BY [Something_Maybe_SomeUniqueId]) rn
   FROM INSERTED
)
INSERT INTO Audit 
SELECT <your fields> 
  FROM INSERTED i 
       INNER JOIN
       UserInserts u ON i.[SomeUniqueId] = u.[SomeUniqueId]
 WHERE u.rn > 30

使用CTE对每个用户的插入进行编号,然后&#34;审计&#34;任何行号&gt; 30。 显然不完整,但如果你从那里开始并陷入困境我们可以提供更多帮助。