Odpowiedzi:
Ad hoc jest po łacinie „w tym celu”. Można to nazwać zapytaniem „w locie” lub „po prostu tak”. Jest to rodzaj zapytania SQL, które po prostu luźno wpisujesz tam, gdzie jest to potrzebne
var newSqlQuery = "SELECT * FROM table WHERE id = " + myId;
... co jest zupełnie innym zapytaniem za każdym razem, gdy wykonywany jest ten wiersz kodu, w zależności od wartości myId
. Przeciwieństwem zapytania ad hoc jest zapytanie predefiniowane, takie jak procedura składowana, w której utworzono pojedyncze zapytanie dla całego uogólnionego celu wyboru z tej tabeli (powiedzmy) i przekazano identyfikator jako zmienną.
Zapytanie ad-hoc to zapytanie, którego nie można określić przed jego wysłaniem. Jest tworzony w celu uzyskania informacji, gdy zajdzie taka potrzeba, i składa się z dynamicznie konstruowanego kodu SQL, który jest zwykle konstruowany przez narzędzia kwerendy rezydujące na komputerze stacjonarnym.
Sprawdź: http://www.learn.geekinterview.com/data-warehouse/dw-basics/what-is-an-ad-hoc-query.html
Chcę również dodać, że kwerenda ad hoc jest podatna na ataki typu SQL injection. Powinniśmy starać się go unikać i zamiast tego używać sparametryzowanych SQL ( takich jak PreparedStatement w Javie ).
Zapytanie ad-hoc to zapytanie, którego nie można określić przed jego wysłaniem. Jest tworzony w celu uzyskania informacji, gdy zajdzie taka potrzeba, i składa się z dynamicznie konstruowanego kodu SQL, który jest zwykle konstruowany przez narzędzia kwerendy rezydujące na komputerze stacjonarnym. Zapytanie ad hoc nie rezyduje na komputerze ani w menedżerze bazy danych, ale jest tworzone dynamicznie w zależności od potrzeb użytkownika danych.
W SQL zapytanie ad hoc to luźno wpisane polecenie / zapytanie, którego wartość zależy od jakiejś zmiennej. Za każdym razem, gdy polecenie jest wykonywane, wynik jest inny, w zależności od wartości zmiennej. Nie można go z góry określić i zwykle podlega zapytaniu SQL programowania dynamicznego. Zapytanie ad hoc jest krótkotrwałe i jest tworzone w czasie wykonywania.
Zapytań ad-hoc jest stworzony, aby zapewnić konkretną rekordów z jednego lub wielu połączone tabele dostępne na serwerze DB. Te zapytania zwykle służą do jednorazowego użytku i może nie być konieczne dołączanie ich do żadnej procedury składowanej w celu ponownego uruchomienia w przyszłości.
Scenariusz ad-hoc : Otrzymujesz żądanie dotyczące określonego podzbioru danych z unikalnym zestawem zmiennych. Jeśli nie ma wstępnie napisanego zapytania, które mogłoby dostarczyć niezbędnych wyników, należy napisać zapytanie ad-hoc, aby wygenerować wyniki zestawu rekordów.
Poza kwerendą Ad-hoc jednorazowego użytku są procedury składowane ; tj. zapytania, które są przechowywane w narzędziu interfejsu DB. Te procedury składowane mogą być następnie wykonywane sekwencyjnie w module lub makrze w celu wykonania wstępnie zdefiniowanego zadania na żądanie, zgodnie z harmonogramem lub wyzwolone przez inne zdarzenie.
Scenariusz procedury składowanej : Co miesiąc musisz wygenerować raport z tego samego zestawu tabel i z tymi samymi zmiennymi (zmienne te mogą być konkretnymi wstępnie zdefiniowanymi wartościami, wartościami obliczonymi, takimi jak „koniec bieżącego miesiąca” lub wartościami wejściowymi użytkownika). Procedura została utworzona jako zapytanie ad hoc za pierwszym razem. Po przetestowaniu wyników w celu zapewnienia dokładności możesz zdecydować się na wdrożenie tego zapytania. Następnie możesz zapisać zapytanie lub serię zapytań w module lub makrze, aby w razie potrzeby uruchomić je ponownie.
Zapytania ad hoc to takie, które nie zostały jeszcze zdefiniowane, które nie są potrzebne regularnie, więc nie są uwzględniane w typowym zestawie raportów lub zapytań
Zapytanie ad hoc jest typem definicji komputera. Oznacza to, że to zapytanie jest specjalnie zaprojektowane w celu uzyskania wszelkich informacji, gdy są one potrzebne. Predefiniowane. odnieś się do https://www.youtube.com/watch?v=0c8JEKmVXhU
W serwerze Sql „Zapytanie ad hoc” jest również używane w przypadku zapytań rozproszonych ad hoc. Są to zapytania ad hoc na innym serwerze za pośrednictwem OpenRowset lub OpenDatasource. Zapytania rozproszone ad hoc są dozwolone tylko po skonfigurowaniu tak. To jest opcja konfiguracji serwera.
SQL injection attacks
... Musisz użyć parametru.