Krótka odpowiedź: nie.
Długa odpowiedź:
Cóż, to nadal nie . Ale postaram się wyjaśnić dlaczego. Na dzień dzisiejszy, gdy uruchamiasz zapytanie, silnik bazy danych wymaga znajomości struktury zestawu wyników (liczba kolumn, nazwy kolumn, typy danych itp.), które zwróci zapytanie. Dlatego musisz zdefiniować strukturę zbioru wyników, gdy pytasz o dane z DB. Pomyśl o tym:czy kiedykolwiek uruchomiłeś zapytanie, w którym nie znasz wcześniej struktury zestawu wyników?
Dotyczy to również sytuacji, gdy select *
, który jest tylko składnią cukru. Na końcu zwracana struktura to "wszystkie kolumny w takiej tabeli(ach)".
Składając łańcuch, dynamicznie generujesz pożądaną strukturę, zanim poprosisz o zestaw wyników. Dlatego to działa.
Na koniec powinieneś mieć świadomość, że dynamiczne składanie łańcucha może teoretycznie i potencjalnie (chociaż mało prawdopodobne) da ci zestaw wyników z nieskończonymi kolumnami. Oczywiście nie jest to możliwe i zakończy się niepowodzeniem, ale jestem pewien, że rozumiesz konsekwencje.
Aktualizacja
Znalazłem to, co potwierdza powody, dla których to nie działa.
Tutaj :
Będę dalej szukał i dodawał tutaj.