Une solution que j'utilise beaucoup...
Fournissez votre liste de nombres sous la forme d'un VARCHAR(MAX)
chaîne délimitée par des virgules, puis utilisez l'un des nombreux dbo.fn_split()
fonctions que les gens ont écrites en ligne.
L'un des beaucoup exemples en ligne... SQL-User-Defined-Function-to-Parse-a-Delimited-Str
Ces fonctions prennent une chaîne en paramètre et renvoient une table.
Ensuite, vous pouvez faire des choses comme...
INSERT INTO @temp SELECT * FROM dbo.split(@myList)
SELECT
*
FROM
myTable
INNER JOIN
dbo.split(@myList) AS list
ON list.id = myTable.id
Une alternative consiste à examiner les paramètres de valeur de table. Celles-ci vous permettent de transmettre une table entière à une procédure stockée en tant que paramètre. Comment dépend du cadre que vous utilisez. Êtes-vous en .NET, Java, Ruby, etc., et comment communiquez-vous avec la base de données ?
Une fois que nous connaissons plus de détails sur votre code d'application, nous pouvons vous montrer à la fois le code client et le modèle de procédure stockée SQL, pour l'utilisation des paramètres de valeur de table.