Hi Everyone, I did a little research but I am not sure how to fix this issue. I read what the cause is but I don't know how to fix it because I'm still new to SQL. I inherited a db (with custom trigger) and the trigger is causing an error "SQL Server Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >=". I read that the error is caused by a subquery returning more results than 1. Unfortunately I do not know what the subquery is
I pasted the trigger below and I hope someone here is kind of enough to tell me what to change to fix this!
Thanks in advance.
Here is the trigger:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER
TRIGGER [db1].[WKFLWHistoryTrigger] ON [db1].[PROFILE]
FOR
INSERT, UPDATE
AS
BEGIN
SET NOCOUNT ON;
SET XACT_ABORT ON;
DECLARE @intErrorCode INT, @ErrorDescrip varchar(50), @WKFLW_Datetime datetime, @Deleted int, @Inserted int
BEGIN TRAN;
SET @WKFLW_Datetime = getutcdate()
SET @Deleted = (SELECT wkflw_assign2 FROM Deleted)
SET @Inserted = (SELECT wkflw_assign2 FROM Inserted)
IF UPDATE(wkflw_assign2)
BEGIN
IF (@Deleted Is Null AND @Inserted = 0)
BEGIN
UPDATE db1.[Profile]
SET wkflw_assigndt = NULL
FROM inserted
WHERE db1.[Profile].SYSTEM_ID = inserted.SYSTEM_ID
END
ELSE
BEGIN
INSERT INTO dbo.WKFLWHistory (SYSTEM_ID, WKFLW_Value, WKFLW_Datetime)
SELECT SYSTEM_ID, wkflw_assign2 , @WKFLW_DateTime
FROM inserted
UPDATE db1.[Profile]
SET wkflw_assigndt = @WKFLW_Datetime
FROM inserted
WHERE db1.[Profile].SYSTEM_ID = inserted.SYSTEM_ID
END
END
IF @@ERROR <> 0
BEGIN
SELECT @intErrorCode = @@ERROR
SELECT @ErrorDescrip = 'Error recoding WKFLW_ASSIGN Time - '+ convert(varchar(10),@intErrorCode)
IF (@intErrorCode <> 0) GOTO ERRORHANDLER
END
COMMIT TRAN;
ERRORHANDLER:
IF (@intErrorCode <> 0) BEGIN
PRINT (IsNull(@ErrorDescrip, 'Unexpected error occurred'));
ROLLBACK TRAN;
END
END