我需要为我正在处理的数据库创建一个触发器,但是创建这些数据库的经验很少。触发器用于插入命令,但如果一个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;
答案 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。 显然不完整,但如果你从那里开始并陷入困境我们可以提供更多帮助。