Prima di spiegarti come fare è necessario che tu sappia che per poter funzionare, questa stored procedure deve essere eseguita da un utente che abbia i privileggi da amministratore, di seguito ti riporto un esempio semplice di generazione dinamica della tabella, poi sarai tu ad adattarla alle tue eseigenze:
codice:
create procedure DynamicTableCreate
@name nvarchar(128)
as
declare @query nvarchar(4000)
set @query = N'CREATE TABLE ' + QUOTENAME(@name) + N' (param1 int primary key not null, valore varchar(50) not null)';
exec sp_executesql @query
param1 e valore sono campi inventati.