【发布时间】:2011-11-25 15:27:26
【问题描述】:
我有以下触发器
ALTER TRIGGER [dbo].[RefreshProject]
ON [dbo].[Project]
AFTER INSERT,DELETE,UPDATE
AS
BEGIN
SET NOCOUNT ON
DECLARE @percentage decimal(18,2)
DECLARE @ProjectID int
DECLARE @TASKID int
IF EXISTS(SELECT * FROM Inserted)
BEGIN
SELECT @ProjectID = Inserted.ProjectID, @TASKID = ISNULL(Inserted.TASKID,-1) from Inserted join Project on Inserted.ScheduleID = Project.ScheduleID
END
IF EXISTS(SELECT * FROM Deleted)
BEGIN
SELECT @ProjectID = Deleted.ProjectID,@TASKID = ISNULL(Deleted.TASKID,-1) from Deleted join Project on Deleted.ScheduleID = Project.ScheduleID
END
BEGIN
SET @percentage = (SELECT percentage from Project where ProjectID = @ProjectID)
EXEC LoadSummary @percentage,@ProjectID, @TASKID
END
END
对于插入和更新,我能够获取修改对象的 ProjectID,但是当删除项目时,我无法获取 ProjectID 或 TaskID...知道我做错了什么吗?
【问题讨论】:
-
您的触发器无法处理多行...