Я делал следующим образом. Для каждой фирмы была написана процедура, с названием фирмы в названии процедуры. (Фирмы были названы англ буквами, если у вас Русские буквы используйте [...])
CREATE proc sp_xxx
( @firm varchar(10),
@param varchar(10)
)
as
DECLARE @SQLString NVARCHAR(500),@ParmDefinition NVARCHAR(500)
SET @SQLString = N' exec sp_xxx_'+@firm +' @param'
SET @ParmDefinition = N'@param varchar(10)'
EXECUTE sp_executesql @SQLString, @ParmDefinition, @param=@param
а каждая процедура работала уже с таблицами конкретной фирмы
Все понятно?? вместо @param можно передавать сколь угодно переменных, главное, что бы размер строки не был превышен..
Или можно извратиться и написать универсальную процедуру. и подставлять в вызовах уже названия таблиц.
А если вызовы происходят редко, можно вначале создать вьюхи на нужную фирму с универсальными названиями (т.е. без назв фирмы вначале). а потом процедурой работать с таблицами через вьюхи..
Грохаешь созданные вьюхи. Создаешь для другой фирмы и т.д.
Версий много.. Копайте господа ))
__________________
Внедрение, развитие и поддержка DAX и RPA
spp16rus | sergeypp@gmail.com
|