Una solución que uso mucho...
Proporcione su lista de números como VARCHAR(MAX)
cadena delimitada por comas, luego use uno de los muchos dbo.fn_split()
funciones que la gente ha escrito en línea.
Uno de muchos ejemplos en línea... SQL-User-Defined-Function-to-Parse-a-Delimited-Str
Estas funciones toman una cadena como parámetro y devuelven una tabla.
Entonces puedes hacer cosas como...
INSERT INTO @temp SELECT * FROM dbo.split(@myList)
SELECT
*
FROM
myTable
INNER JOIN
dbo.split(@myList) AS list
ON list.id = myTable.id
Una alternativa es buscar en los parámetros de valores de tabla. Estos le permiten pasar una tabla completa a un procedimiento almacenado como parámetro. Cómo depende del marco que estés usando. ¿Está en .NET, Java, Ruby, etc. y cómo se comunica con la base de datos?
Una vez que conozcamos más detalles sobre el código de su aplicación, podemos mostrarle tanto el código del cliente como la plantilla de procedimiento almacenado de SQL para usar los parámetros de valores de tabla.