【问题标题】:New permission added to list. Update all users to have new permission via Trigger新权限添加到列表。通过触发器更新所有用户以获得新权限
【发布时间】:2019-03-26 15:15:06
【问题描述】:

所以我有一张表格,其中包含我们内部网站的所有报告。我正在尝试创建一个触发器,以便在将新报告添加到此列表时,所有用户都会获得更新的权限。 (默认访问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。

【问题讨论】:

    标签: sql-server tsql database-trigger


    【解决方案1】:

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

    【讨论】:

    • 这会为每个 UserId 插入一行吗?
    猜你喜欢
    • 1970-01-01
    • 2020-11-08
    • 1970-01-01
    • 2016-06-26
    • 2013-06-17
    • 1970-01-01
    • 2018-10-29
    • 2023-03-30
    • 1970-01-01
    相关资源
    最近更新 更多