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

问题描述 投票:1回答:1

所以我有一张表格,上面有我们内部网站的所有报告。我正在尝试创建一个触发器,以便在向此列表添加新报告时,所有用户都可以使用该权限进行更新。 (默认访问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

目标是在每个用户的权限表中添加一行,列表ID为false,值为false。

sql-server tsql database-trigger
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.