Questo sembra relativamente semplice, ma a quanto pare non lo è.TSQL selezionare nella tabella Temp da dynamic sql
Ho bisogno di creare una tabella temporanea in base a una tabella esistente tramite il prescelto nella sintassi:
SELECT * INTO #TEMPTABLE FROM EXISTING_TABLE
Il problema è, il nome della tabella esistente viene accettato tramite un parametro ...
I possono ottenere i dati della tabella tramite:
execute ('SELECT * FROM ' + @tableName)
ma come faccio a sposare i due in modo che posso mettere i risultati del eseguire direttamente nella tabella temporanea.
Le colonne per ogni tabella che verrà utilizzata non sono le stesse, quindi creare la tabella temporanea prima che i dati non siano pratici.
Sono aperto a qualsiasi suggerimento tranne l'utilizzo di una tabella temporanea globale.
Aggiornamento:
Questo è completamente ridicolo, ma le mie prenotazioni con la tabella temporanea globale è che si tratta di una piattaforma multi utente si presta a problemi se la tabella sarà indugiare per lunghi periodi di tempo ...
Sooo .. solo per superare questa parte ho iniziato utilizzando il execute per generare una tabella temporanea globale.
execute('select * into ##globalDynamicFormTable from ' + @tsFormTable)
Ho quindi utilizzare la tabella temporanea globale per caricare la tabella temporanea locale:
select * into #tempTable from ##globalDynamicFormTable
Ho quindi eliminare la tabella globale.
drop table ##globalDynamicFormTable
questo è sporca e non mi piace, ma per il momento, fino a ottenere una soluzione migliore, la sua intenzione di lavorare.
Nel fine:
Credo che non v'è alcun modo per aggirare l'ostacolo.
La risposta migliore sembra essere o;
Creare un visualizzare nel comando execute e utilizzarlo per caricare la tabella temporanea locale nella stored procedure.
Creare una tabella di temperatura globale nel comando execute e utilizzarlo per caricare la tabella di temp locale.
Con ciò detto probabilmente starò semplicemente con la tabella temporanea globale perché la creazione e l'eliminazione di viste viene verificata nella mia organizzazione, e sono sicuro che si metteranno in dubbio che se tutto questo succederà.
Grazie!
In quale versione di SQL Server ci si trova? –
sql server 2005 – Patrick