Ich habe eine Abfrage, wo ich alle Zeilen, die mit einer Liste von Werten verbunden sind, zurückgeben möchte. Sie könnten dies sehr einfach schreiben als:SQL Abfrage Filterung nach Liste der Parameter
Ich könnte diese Abfrage in C# generieren und ausführen. Dies ist jedoch offensichtlich weniger als ideal, da es keine Parameter verwendet, es wird leiden, wenn versucht wird, Abfragepläne zwischenzuspeichern, und ist offensichtlich anfällig für einen SQL-Injection-Angriff.
Eine Alternative ist, zu schreiben wie:
select * from TableA where ColumnB = @value
Dieses von C# viele Male ausgeführt werden konnte, was jedoch in N DB führen trifft. Die einzige andere Alternative, die ich sehen kann, besteht darin, eine temporäre Tabelle zu erstellen und ihr auf diese Weise beizutreten. Allerdings sehe ich diesen Punkt nicht, da dieser komplexer wäre und unter den gleichen Einschränkungen leidet wie die erste Option.
Ich benutze SQL Server und OLDB, Erstellen der Abfrage ist nicht das Problem. Ich versuche den effizientesten Prozess zu erstellen.
Welche dieser drei Methoden ist effizienter? Habe ich eine Alternative verpasst?
Wie möchten Sie die Abfrage ausführen? EF, LINQ, ADO, OLEDB? – paul
Und welcher Server? MySql, MsSql, andere? – mmdemirbas
OLDB und MsSQL, Frage aktualisiert – Liath