Wenn Sie die Abfrage in einer Variablen (nicht in einer gespeicherten Prozedur) haben und keine große Menge an IDs haben, können Sie Ihr eigenes IN erstellen. Ich habe die Geschwindigkeit dieses Ansatzes nicht getestet.
Dieser Code wird nicht kompiliert, er soll Ihnen nur eine Vorstellung geben.
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