This is an UPDATE procedure which should update columns according to 2 conditions. The second IF statement is working fine. The first one, I am having problems with. I need to check if the incoming parameters match the current values in the table. If they do not, then I need to update ModifiedBy and ModifiedOn. Otherwise, I need to leave those fields alone.
CODE
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
CREATE PROCEDURE [dbo].[usp_UpdateTblMarketingPrograms3]
(
@ID int
,@FName varchar(50)
,@LName varchar(50)
,@Email varchar(100)
,@ProgramTitle varchar(50)
,@ProgramDesc varchar(200)
,@ProgramHeader varchar(200)
,@ProgramIntro text
,@ProgramEmail text
,@ProgramFile varchar(200)
,@ModifiedBy varchar(20)
,@ModifiedOn datetime
)
AS
IF @FName = FName AND @LName = LName AND @Email = @Email AND @ProgramTitle = ProgramTitle AND
@ProgramDesc = ProgramDesc AND @ProgramHeader = ProgramHeader AND @ProgramIntro = ProgramIntro AND
@ProgramEmail = ProgramEmail AND @ProgramFile = ''
BEGIN
UPDATE tbl_MarketingPrograms
SET ModifiedBy = @ModifiedBy, ModifiedOn = @ModifiedOn WHERE ID = @ID
END
IF @ProgramFile = ''
BEGIN
UPDATE tbl_MarketingPrograms
SET FName = @FName, LName = @LName, Email = @Email,
ProgramTitle = @ProgramTitle, ProgramDesc = @ProgramDesc, ProgramHeader = @ProgramHeader,
ProgramIntro = @ProgramIntro, ProgramEmail = @ProgramEmail WHERE ID = @ID
END
ELSE
BEGIN
UPDATE tbl_MarketingPrograms
SET FName = @FName, LName = @LName, Email = @Email,
ProgramTitle = @ProgramTitle, ProgramDesc = @ProgramDesc, ProgramHeader = @ProgramHeader,
ProgramIntro = @ProgramIntro, ProgramEmail = @ProgramEmail, ProgramFile = @ProgramFile WHERE ID = @ID
END
The error I am getting is Invalid column name for all the columns in the first IF statement. I know I am missing something, but I don't know what. Maybe a SELECT before the IF? I'm new to SQL. Any help would be appreciated. Thank you.