Als je de query in een variabele hebt (geen opgeslagen procedure) en je hebt niet een enorm aantal id's, dan zou je je eigen IN kunnen bouwen. Ik heb de snelheid van deze aanpak niet getest.
Deze code wordt niet gecompileerd, het is alleen om je een idee te geven.
query = "SELECT * FROM table WHERE col IN ("
For t = 0 TO x.Length-1
If t > 0 Then query &= ","
query &= "@var" & t
Next
query &= ")"
...
For t = 0 TO x.Length-1
cmd.Parameters.Add("@var" & t, SqlDbType.Int).Value = x(t)
Next