SSRS 触发器,用于使用其他信息更新说明



我正在尝试创建一个触发器,该触发器将更新已编辑记录的 SSRS 上的描述。

我正在尝试将计划信息添加到屏幕上 SSRS 的"说明"列中,您可以在其中将计划分配给报表。

我有以下查询:

CREATE TRIGGER UpdateDescription
ON [dbo].[Subscriptions]
AFTER INSERT,  UPDATE
AS
UPDATE dbo.Subscriptions
SET [Description] = a.Description + ' | Schedule: ' + d.Name
FROM dbo.Subscriptions a
LEFT JOIN dbo.Catalog b
ON a.Report_OID = b.ItemID
LEFT JOIN dbo.ReportSchedule c
ON b.ItemID = c.ReportID
LEFT JOIN dbo.Schedule d
ON c.ScheduleID = d.ScheduleID
WHERE

当该触发器到位并且我编辑报告时,它会更改所有报告的每个计划的描述。我可以在末尾的"WHERE"语句中添加什么样的参数,以便它只编辑我当前正在创建/更新的计划的说明?

我认为您需要连接到插入表,该表包含所有修改的记录

INNER JOIN INSERTED as I ON dbo.Subscriptions.Id = I.Id

与其使用WHERE子句,不如INNER JOININSERT 表。 这将仅包含插入到表中的行:

CREATE TRIGGER UpdateDescription
ON [dbo].[Subscriptions]
AFTER INSERT, UPDATE
AS
UPDATE dbo.Subscriptions
SET [Description] = a.Description + ' | Schedule: ' + d.Name
FROM dbo.Subscriptions a
INNER JOIN inserted i ON i.SubscriptionID = a.SubscriptionID
LEFT JOIN dbo.Catalog b ON a.Report_OID = b.ItemID
LEFT JOIN dbo.ReportSchedule c ON b.ItemID = c.ReportID
LEFT JOIN dbo.Schedule d ON c.ScheduleID = d.ScheduleID;

相关内容

最新更新