Antworten:
Ad hoc ist lateinisch für "zu diesem Zweck". Sie können es als "on the fly" -Abfrage oder als "nur so" -Abfrage bezeichnen. Es ist die Art von SQL-Abfrage, die Sie nur lose dort eingeben, wo Sie sie benötigen
var newSqlQuery = "SELECT * FROM table WHERE id = " + myId;
... was bei jeder Ausführung dieser Codezeile eine völlig andere Abfrage ist, abhängig vom Wert von myId
. Das Gegenteil einer Ad-hoc-Abfrage ist eine vordefinierte Abfrage, z. B. eine gespeicherte Prozedur, bei der Sie eine einzelne Abfrage für den gesamten allgemeinen Zweck der Auswahl aus dieser Tabelle (z. B.) erstellt und die ID als Variable übergeben haben.
Eine Ad-hoc-Abfrage ist eine Abfrage, die vor dem Zeitpunkt der Abfrage nicht ermittelt werden kann. Es wird erstellt, um bei Bedarf Informationen abzurufen, und besteht aus dynamisch erstelltem SQL, das normalerweise von Desktop-residenten Abfragetools erstellt wird.
Überprüfen Sie: http://www.learn.geekinterview.com/data-warehouse/dw-basics/what-is-an-ad-hoc-query.html
Außerdem möchte ich hinzufügen, dass Ad-hoc-Abfragen für SQL-Injection-Angriffe anfällig sind. Wir sollten versuchen, es zu vermeiden und stattdessen parametrisierte SQLs verwenden ( wie PreparedStatement in Java ).
Eine Ad-hoc-Abfrage ist eine Abfrage, die vor dem Zeitpunkt der Abfrage nicht ermittelt werden kann. Es wird erstellt, um bei Bedarf Informationen abzurufen, und besteht aus dynamisch erstelltem SQL, das normalerweise von Desktop-residenten Abfragetools erstellt wird. Eine Ad-hoc-Abfrage befindet sich nicht auf dem Computer oder im Datenbankmanager, sondern wird je nach den Anforderungen des Datenbenutzers dynamisch erstellt.
In SQL ist eine Ad-hoc-Abfrage ein lose eingegebener Befehl / eine Abfrage, deren Wert von einer Variablen abhängt. Jedes Mal, wenn der Befehl ausgeführt wird, ist das Ergebnis abhängig vom Wert der Variablen unterschiedlich. Es kann nicht vorbestimmt werden und fällt normalerweise unter die SQL-Abfrage für die dynamische Programmierung. Eine Ad-hoc-Abfrage ist von kurzer Dauer und wird zur Laufzeit erstellt.
Eine Ad-hoc-Abfrage wird erstellt, um ein bestimmtes Recordset aus einer oder mehreren zusammengeführten Tabellen bereitzustellen, die auf dem DB-Server verfügbar sind. Diese Abfragen dienen normalerweise einem einmaligen Zweck und müssen möglicherweise nicht in eine gespeicherte Prozedur integriert werden, um sie in Zukunft erneut auszuführen.
Ad-hoc-Szenario : Sie erhalten eine Anforderung für eine bestimmte Teilmenge von Daten mit einer eindeutigen Menge von Variablen. Wenn keine vorab geschriebene Abfrage vorhanden ist, die die erforderlichen Ergebnisse liefern kann, müssen Sie eine Ad-hoc-Abfrage schreiben, um die Recordset-Ergebnisse zu generieren.
Über eine einmalige Ad-hoc-Abfrage hinaus werden gespeicherte Prozeduren gespeichert . dh Abfragen, die im DB-Schnittstellentool gespeichert sind. Diese gespeicherten Prozeduren können dann nacheinander innerhalb eines Moduls oder Makros ausgeführt werden, um eine vordefinierte Aufgabe entweder bei Bedarf, nach einem Zeitplan oder ausgelöst durch ein anderes Ereignis auszuführen.
Szenario für gespeicherte Prozeduren : Jeden Monat müssen Sie einen Bericht aus demselben Tabellensatz und mit denselben Variablen erstellen (diese Variablen können bestimmte vordefinierte Werte, berechnete Werte wie "Ende des aktuellen Monats" oder Eingabewerte eines Benutzers sein). Sie haben die Prozedur beim ersten Mal als Ad-hoc-Abfrage erstellt. Nachdem Sie die Ergebnisse getestet haben, um die Genauigkeit sicherzustellen, können Sie diese Abfrage bereitstellen. Anschließend speichern Sie die Abfrage oder eine Reihe von Abfragen in einem Modul oder Makro, um sie bei Bedarf erneut auszuführen.
Ad-hoc-Abfragen sind solche, die noch nicht definiert sind und nicht regelmäßig benötigt werden. Sie sind daher nicht in den typischen Berichten oder Abfragen enthalten
Ad-hoc-Abfrage ist die Art der Computerdefinition. Dies bedeutet, dass diese Abfrage speziell dafür ausgelegt ist, Informationen zu erhalten, wenn sie nur benötigt werden. Vordefiniert. Verweisen Sie auf diese https://www.youtube.com/watch?v=0c8JEKmVXhU
In SQL Server wird "Ad-hoc-Abfrage" auch für verteilte Ad-hoc-Abfragen verwendet. Dies sind Ad-hoc-Abfragen auf einem anderen Server über OpenRowset oder OpenDatasource. Verteilte Ad-hoc-Abfragen sind erst nach der Konfiguration zulässig. Dies ist eine Serverkonfigurationsoption.
SQL injection attacks
... Sie müssen Parameter verwenden.