CREATE PROCEDURE [dbo].[Testing]
@FilteredID VARCHAR (MAX),
@SchoolCode VARCHAR (MAX),
@Score1 INT,
@Score2 INT,
@Score3 INT
AS
BEGIN
DECLARE @SQLStr AS VARCHAR (MAX);
SET @SqlStr = 'UPDATE dbo.School
SET Score = CASE
WHEN SchoolCode = 1 THEN @Score1
WHEN SchoolCode = 2 THEN @Score2
WHEN SchoolCode = 3 THEN @Score3
END';
IF @FilteredID > '' OR @SchoolCode > ''
BEGIN
SET @SqlStr = @SqlStr + ' WHERE id IN (' + @FilteredID + ') AND code IN (' + @SchoolCode + ')';
END
EXECUTE (@SqlStr );
END
I tried to execute above sproc in SQL Server Management Studio , I received the error: Must declare the scalar variable "@Score1". Any idea what wrong with my stored procedure codes? I really appreciate your time to help me out on this error. Thanks in advance.
@FilteredID VARCHAR (MAX),
@SchoolCode VARCHAR (MAX),
@Score1 INT,
@Score2 INT,
@Score3 INT
AS
BEGIN
DECLARE @SQLStr AS VARCHAR (MAX);
SET @SqlStr = 'UPDATE dbo.School
SET Score = CASE
WHEN SchoolCode = 1 THEN @Score1
WHEN SchoolCode = 2 THEN @Score2
WHEN SchoolCode = 3 THEN @Score3
END';
IF @FilteredID > '' OR @SchoolCode > ''
BEGIN
SET @SqlStr = @SqlStr + ' WHERE id IN (' + @FilteredID + ') AND code IN (' + @SchoolCode + ')';
END
EXECUTE (@SqlStr );
END
I tried to execute above sproc in SQL Server Management Studio , I received the error: Must declare the scalar variable "@Score1". Any idea what wrong with my stored procedure codes? I really appreciate your time to help me out on this error. Thanks in advance.