Как мне передать имя таблицы в хранимый процесс?
Я только что натолкнулся на странную вещь ... на нашем сайте есть код, который принимает гигантский оператор SQL, модифицирует его в коде, выполняя поиск и замену на основе некоторых пользовательских значений, а затем передает его в SQL Server как запрос.
Я думал, что это будет чище, как параметризованный запрос к хранимому процессу, с пользовательскими значениями в качестве параметров, но когда я посмотрел более внимательно, я понимаю, почему они это делают ... таблица, из которой они выбирают, переменно зависит от этих пользовательских значений.
Например, в одном случае, если значения были («FOO», «BAR»), запрос в конечном итоге будет выглядеть как «SELECT * FROM FOO_BAR».
Есть ли простой и понятный способ сделать это? Все, что я пытаюсь сделать, кажется нелегким.
EDIT: Конечно, я мог бы динамически генерировать sql в хранимом процессе и выполнять его (блеф), но в этот момент мне интересно, получил ли я что-нибудь.
EDIT2: Рефакторинг имен таблиц каким-либо разумным способом, скажем, наличие их всех в одной таблице с разными именами в качестве нового столбца было бы хорошим способом решить все это, на что несколько человек прямо или на что ссылались. К сожалению, это не вариант в этом случае.