У меня есть ситуация, когда мне нужно создать таблицу из хранимой процедуры для нескольких разных клиентов.Все эти таблицы имеют одинаковые значения ядра, но иногда они имеют дополнительные столбцы.
Я бы не хотел копировать и вставлять эти таблицы каждый раз, генерируя биты SQL, поэтому моя текущая настройка заключается в том, что у меня есть хранимая процедура, котораявозвращает столбцы ядра, и это загружается в ## TempTableClientName (необходимо, потому что это внешнее приложение, которое обращается к ним, и каждая команда, отправленная на сервер, выглядит как отдельное соединение, поэтому стандартная временная таблица сеанса, похоже, не выполняетзадание).
Теперь я хочу запустить вторую хранимую процедуру, чтобы обновить эту временную таблицу и добавить ее в новые столбцы.Вероятно, будет несколько таких процедур, и в некоторых случаях они, вероятно, будут использоваться совместно.Для этого, чтобы поделиться ими, мне нужно как-то сказать, какую таблицу ## обновить.
Мои текущие параметры выглядят так:
Я могу передать это как строку и использовать динамический sql, но это выглядит грязно.
Я могу применить одну хранимую процедуру для каждого клиента итогда имя таблицы (для каждого клиента) может быть жестко закодировано в процедуре.Кажется, что у него есть потенциал для неоптимального кода (т. Е. Множества очень похожих или даже идентичных процедур).
Кто-нибудь может предложить какие-либо варианты лучше, чем эти?в настоящее время я смотрю на второе, так как клиентов не так много, и это, кажется, самый простой способ сделать что-то.Я хотел бы иметь несколько лучших вариантов ... Я надеялся, что может быть какая-то функция или что-то, что возьмет строку и получит объект таблицы с таким именем ...