Как мне передать имя таблицы в хранимый процесс?

Я только что натолкнулся на странную вещь ... на нашем сайте есть код, который принимает гигантский оператор SQL, модифицирует его в коде, выполняя поиск и замену на основе некоторых пользовательских значений, а затем передает его в SQL Server как запрос.

Я думал, что это будет чище, как параметризованный запрос к хранимому процессу, с пользовательскими значениями в качестве параметров, но когда я посмотрел более внимательно, я понимаю, почему они это делают ... таблица, из которой они выбирают, переменно зависит от этих пользовательских значений.

Например, в одном случае, если значения были («FOO», «BAR»), запрос в конечном итоге будет выглядеть как «SELECT * FROM FOO_BAR».

Есть ли простой и понятный способ сделать это? Все, что я пытаюсь сделать, кажется нелегким.

EDIT: Конечно, я мог бы динамически генерировать sql в хранимом процессе и выполнять его (блеф), но в этот момент мне интересно, получил ли я что-нибудь.

EDIT2: Рефакторинг имен таблиц каким-либо разумным способом, скажем, наличие их всех в одной таблице с разными именами в качестве нового столбца было бы хорошим способом решить все это, на что несколько человек прямо или на что ссылались. К сожалению, это не вариант в этом случае.

Ответы на вопрос(10)

Ваш ответ на вопрос