En lösning jag använder mycket...
Ange din lista med nummer som en VARCHAR(MAX)
komma avgränsad sträng, använd sedan en av de många dbo.fn_split()
funktioner som folk har skrivit på nätet.
En av många exempel online... SQL-User-Defined-Function-to-Parse-a-Delimited-Str
Dessa funktioner tar en sträng som en parameter och returnerar en tabell.
Då kan du göra saker som...
INSERT INTO @temp SELECT * FROM dbo.split(@myList)
SELECT
*
FROM
myTable
INNER JOIN
dbo.split(@myList) AS list
ON list.id = myTable.id
Ett alternativ är att titta på tabellvärderade parametrar. Dessa låter dig skicka en hel tabell till en lagrad procedur som en parameter. Hur beror på ramverket du använder. Är du i .NET, Java, Ruby, etc, och hur kommunicerar du med databasen?
När vi vet mer detaljer om din applikationskod kan vi visa dig både klientkoden och SQL-mallen för lagrad procedur för att använda tabellvärderade parametrar.