I am trying to put an IF/ELSE statement into a stored procedure.
CREATE PROCEDURE [dbo].[Sp_enty_srch_attr_vals]
(@ENTY_ID INT,
@FIELD_ID INT,
@VALUE VARCHAR(5000),
@SQL VARCHAR(5000)
)
AS
BEGIN
IF (@FIELD_ID = 148)
SET nocount ON;
SET @SQL = 'SELECT DISTINCT [GPI] FROM [GPI_ASOC] WHERE [GPI] LIKE ''%@VALUE%'' ORDER BY GPI';
SET @SQL = replace(@SQL, '@VALUE', @VALUE);
EXEC SP_EXECUTESQL @SQL;
ELSE
SET nocount ON;
DECLARE @ENTY_TABLE_NAME VARCHAR(500)
SET @ENTY_TABLE_NAME = (SELECT TOP 1 enty_table_name
FROM enty
WHERE enty.enty_id = @ENTY_ID)
EXEC( 'SELECT DISTINCT ATTR_VAL FROM '+@ENTY_TABLE_NAME+'_ATTR WHERE FIELD_ID='+@FIELD_ID+
' AND ATTR_VAL LIKE ''%'+@VALUE+'%'' ORDER BY ATTR_VAL ' )
END
I am getting this error and I have been banging my head against the wall trying to fix it.
Msg 156, Level 15, State 1, Procedure Sp_enty_srch_attr_vals, Line 14 [Batch Start Line 17]
Incorrect syntax near the keyword 'ELSE'.
What is wrong with this script?