SSRS 触发器以使用附加信息更新描述
SSRS Trigger to update Description with additional information
我正在尝试创建一个触发器来更新 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' 语句以便它只编辑我目前 creating/updating?
的时间表的描述
与其使用 WHERE
子句,您应该 INNER JOIN
到 INSERTED table。这将仅包含插入到 table:
中的行
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;
我认为您需要加入 INSERTED table,它包含所有已修改的记录
INNER JOIN INSERTED as I ON dbo.Subscriptions.Id = I.Id
我正在尝试创建一个触发器来更新 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' 语句以便它只编辑我目前 creating/updating?
的时间表的描述与其使用 WHERE
子句,您应该 INNER JOIN
到 INSERTED table。这将仅包含插入到 table:
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;
我认为您需要加入 INSERTED table,它包含所有已修改的记录
INNER JOIN INSERTED as I ON dbo.Subscriptions.Id = I.Id