Кратък отговор: не.
Дълъг отговор:
Е, това все още е нене . Но ще се опитам да обясня защо. От днес, когато изпълнявате заявката, машината на DB изисква да е наясно със структурата на набора от резултати (брой колони, имена на колони, типове данни и т.н.), които заявката ще върне. Следователно, трябва да дефинирате структурата на набора от резултати, когато поискате данни от DB. Помислете за това:изпълнявали ли сте някога заявка, при която не бихте знаели структурата на набора от резултати предварително?
Това важи и когато select *
, което е просто захарен синтаксис. Накрая структурата, която се връща, е „всички колони в такава таблица(и)“.
С асемблирането на низ вие динамично генерирате структурата, която желаете, преди да поискате набора от резултати. Ето защо работи.
И накрая, трябва да сте наясно, че динамичното сглобяване на низа може теоретично и потенциално (въпреки че не е вероятно) да получите набор от резултати с безкрайни колони. Разбира се, това не е възможно и ще се провали, но съм сигурен, че разбирате последиците.
Актуализация
Намерих това, което затвърждава причините, поради които не работи.
Тук :
Ще продължа да търся и да добавям тук.