@ стоимость, я согласен, что это было бы неплохо, но его просто не существует.Обычно предполагается, что ваши предложения WHERE
являются динамической частью запроса, а все остальное, включая список SELECT
и имя таблицы, является статическим.На самом деле, большая часть предложения WHERE
даже не динамическая, а только сами значения поиска.Вы также не можете динамически добавлять имена столбцов таким способом.Это, безусловно, может быть построено, но для этого потребуется, чтобы механизм запросов был более осведомлен о механизме базы данных, который является червем, который Microsoft не хотел открывать.
Представьте себе выпадающее меню с именами таблиц, такими каккак «Работа», «Люди», «Работодатели», которые создали некоторые наивные разработчики.При обратной передаче это значение используется для SELECT * FROM
.Простое внедрение SQL - это все, что нужно для перехода к другой таблице, не указанной в этом меню.А передача чего-то действительно странного может очень легко вызвать ошибку, которая может раскрыть что-то о базе данных.Параметризованные запросы, основанные только на значениях, все еще могут быть разбиты, но площадь поверхности намного меньше.
Некоторые люди с несколькими префиксами таблиц используют схемы, это вариант для вас?