SQL – Stored Procedure with Select Statement using IN (@Variable_CommaDelimitedListOfIDS)

sqlsql serversql-server-2008stored-procedures

I am creating a stored procedure to which I want to pass as variable a comma delimited list of Ids. I want to use the Ids into a select statement, something like:

Create Procedure up_TEST
@Ids VARCHAR(MAX)
AS
SELECT * FROM ATable a
WHERE a.Id IN(@Ids)

Obviously I get the error that @Ids is a varchar and not an INT but how can I convert the comma delimited list?

Best Answer

Since you're using SQL Server 2008, have a look at table-valued parameters.