I use SQL Server 2012.
I need to pass an array of integers to my stored procedure from Visual Studio. I need to use passed array in where
clause.
For this purpose I created table valued parameter
:
CREATE TYPE IdArray AS TABLE
(
Id int
);
And here my stored procedure:
ALTER PROCEDURE [dbo].[SP_TEST_TLP]
@List dbo.IdArray READONLY
AS
BEGIN
SET NOCOUNT ON;
SELECT *
FROM Clients
WHERE Clients.Id IN ( '@List' )
END
But I try to fire the stored procedure and passing values (some integers) in execute procedure window, I get this error:
Must pass parameter number 2 and subsequent parameters as '@name = value'. After the form '@name = value' has been used, all subsequent parameters must be passed in the form '@name = value'.
UPDATE:
Here how I call the stored procedure:
DECLARE @return_value int
EXEC @return_value = [dbo].[SP_TEST_TLP]
@List = 1,6
SELECT 'Return Value' = @return_value
Any idea why I get this error? What am I doing wrong?