Elke SQL-batch moet passen in de Batchgroottelimiet:65.536 * Netwerkpakketgrootte.
Anders dan dat, wordt uw query beperkt door runtime-voorwaarden. Het zal meestal geen stapelgrootte hebben omdat x IN (a,b,c) niets anders is dan x=a OR x=b OR x=c wat een expressiestructuur creëert die lijkt op x=a OR (x=b OR (x =c)), dus het wordt erg diep met een groot aantal OF. SQL 7 zou een SO bereiken met ongeveer 10k-waarden in de IN, maar tegenwoordig zijn stapels veel dieper (vanwege x64), dus het kan behoorlijk diep gaan.
Bijwerken
Je hebt het artikel van Erland al gevonden over het doorgeven van lijsten/arrays aan SQL Server. Met SQL 2008 hebt u ook tabelwaardeparameters waarmee u een volledige gegevenstabel kunt doorgeven als een enkele tabeltypeparameter en hieraan kunt deelnemen.
XML en XPath is een andere haalbare oplossing:
SELECT ...
FROM Table
JOIN (
SELECT x.value(N'.',N'uniqueidentifier') as guid
FROM @values.nodes(N'/guids/guid') t(x)) as guids
ON Table.guid = guids.guid;