添加到列表的新权限。通过触发器更新所有用户以获得新权限

New permission added to list. Update all users to have new permission via Trigger

所以我有一个 table,其中包含我们内部网站的所有报告。我正在尝试创建一个触发器,以便在将新报告添加到此列表时所有用户都获得更新权限。 (默认访问 False)

我不完全理解触发器,一直在使用几个 sql 语句结合 C# 执行此任务。虽然我确定有一种方法可以只用 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

它的目标是为每个具有列表 table id 和 false 值的用户在权限 table 中添加一行。

我想你只是想要一个 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