Il progetto su cui sto lavorando ha un sacco di in-domande come:Passare un array come valore in un DbParameter ado.net
SELECT something, anotherthing
FROM atable
WHERE something IN (value1, value2, value3)
Questo è un esempio di una query con 3 parametri nel IN -part ma la stessa query potrebbe essere eseguita con 1 o 2 o 5 o 10 o ... parametri. Il problema è che ogni query ha un altro piano di esecuzione nel database con lo rende lento.
mi piacerebbe Hava una query come questa:
SELECT something, anotherthing
FROM atable
WHERE something IN (@value1, @value2, @value3)
o questo:
SELECT something, anotherthing
FROM atable
WHERE something IN (@values)
ho compiuto la prima query con qualche funzione di supporto, ma ho ancora diverso piano di esecuzione per numero di parametri. Questo potrebbe essere risolto con il secondo.
Qual è il modo migliore per passare un array come parametro del database? Sto usando Oracle e SQL Server, le soluzioni per entrambi sono benvenute.
Sfortunatamente devo supportare SQL Server 2000 e 2005, nessun parametro con valori di tabella per me. – Jochen