因此,我有一个表格,其中包含我们内部站点的所有报告。我正在尝试触发一个触发器,以便在将新报告添加到此列表时,所有用户都将获得该权限的更新。 (默认访问权限为False)
我不完全了解触发器,并且已经通过结合C#的几个sql语句执行了此任务。虽然我敢肯定有一种方法可以仅使用SQL触发器。
这是我到目前为止得到的最接近的信息(不起作用)。安全性的名称已更改。
CREATE TRIGGER [New Trigger]
ON [dbo].[List_Table]
FOR INSERT
AS
BEGIN
INSERT INTO [dbo].[Permission_Table]
(UserId, ReportId, Granted)
(SELECT UserId FROM [dbo].[User_Table]),(SELECT ReportId FROM inserted),false
END
目标是在权限表中为每个用户添加一个具有列表表ID和值false的行。
答案 0 :(得分:0)
我认为您只想要一个insert . . . select
:
CREATE TRIGGER [New Trigger]
ON [dbo].[List_Table]
FOR INSERT
AS
BEGIN
INSERT INTO [dbo].[Permission_Table](UserId, ReportId, Granted)
SELECT u.UserId, i.ReportId, 'false'
FROM Inserted i CROSS JOIN
[dbo].[User_Table] u;
END