En løsning jeg bruger meget...
Angiv din liste over numre som en VARCHAR(MAX)
kommaslettet streng, og brug derefter en af de mange dbo.fn_split()
funktioner, som folk har skrevet på nettet.
En af mange eksempler online... SQL-User-Defined-Function-to-Parse-a-Delimited-Str
Disse funktioner tager en streng som en parameter og returnerer en tabel.
Så kan du gøre ting som...
INSERT INTO @temp SELECT * FROM dbo.split(@myList)
SELECT
*
FROM
myTable
INNER JOIN
dbo.split(@myList) AS list
ON list.id = myTable.id
Et alternativ er at se på tabelværdiparametre. Disse giver dig mulighed for at overføre en hel tabel til en lagret procedure som en parameter. Hvordan afhænger af den ramme, du bruger. Er du i .NET, Java, Ruby osv., og hvordan kommunikerer du med databasen?
Når vi kender flere detaljer om din applikationskode, kan vi vise dig både klientkoden og SQL-skabelonen til lagrede procedurer til brug af Table Valued Parameters.