Avendo un problema con la mia situazione attuale, ho cercato attraverso qualsiasi soluzione sulla rete, ma ancora non riesco a ottenerlo.SQL Server: creazione di una tabella temporanea con colonna dinamica
Qui la domanda:
Ho un gruppo di istruzioni SQL che devono essere eseguite in stored procedure utilizzando cursore all'interno, ciascuna delle affermazioni sta eseguendo un inserto scegliendo da un database differenti così come tavolo.
Ad esempio:
INSERT INTO Database1.Table1(column1, column2, column3)
SELECT column1,column2, column3
FROM Database2.Table2
WHERE --Some Condition
e forse un altro istruzione SQL eseguita è come questo
INSERT INTO Database1.Table3(column1, column2, column3, column4)
SELECT column1, column2, column3, column4
FROM Database3.Table3
WHERE --Some Condition
Va bene fondamentalmente il mio processo, è come questo
Execute Sql to insert into temp Tables --> Insert into a permanent Table from Temp Tables
Dall'alto due istruzioni SQL , il mio risultato eseguito da database2 o 3 o può essere 4,5 e così via. Vado al mio database1 f o negozio permanente. In un modo più sintetico di dire che è, voglio solo fare un'altra copia dei dati che provengono da diverse fonti di database e memorizzarli nel mio database locale per fare qualche ulteriore elaborazione.
Il mio problema principale è che il mio responsabile (o responsabile) mi ha detto di inviare tutti i risultati eseguiti in una tabella TEMP o #Table
prima di eseguirli nel permanente.
Qualcosa di simile a questo:
INSERT INTO #Table3(column1, column2, column3, column4)
SELECT column1, column2, column3, column4
FROM Database3.Table3
WHERE --Some Condition
ho passato qualche ricerca su #Temp
tavoli e ho trovato la maggior parte di loro sta creando con la colonna 'FIX' come
CREATE TABLE #Table
(
column1 VARCHAR(10),
column2 VARCHAR(10),
column3 VARCHAR(10)
)
PROBLEMA: è lì comunque per crearlo con colonne dinamiche? Più in dettaglio modo di chiedere, c'è comunque da inserire per selezionare in una tabella #Temp
senza prefisso la colonna? Perché è impossibile per me creare una serie di tabelle temporanee per ogni SQL eseguito.
Grazie
PS 1: Sono un bel novizio di SQL Server, per favore non esitate a esprimere il mio errore o un errore. Tutti impariamo dagli errori.
PS 2: Scusa per il mio scarso livello di inglese, ho fatto del mio meglio per elaborarlo in modo più chiaro.
Saluti:
LiangCk
È possibile utilizzare 'SELEZIONARE coloum1, coloum2, coloum3, coloum4 INTO # Table3 DA Database3.Table3' per creare una tabella in base ai risultati del' select'. È questo che vuoi dire? –
No, questo non è necessario perché potrebbe trattarsi di poche centinaia di sql che potrebbero essere ognuna di esse con un diverso coloum. Se faccio quello che hai fatto, significa che creo qualche centinaio di tavoli Temp? – Worgon
Non sono sicuro di cosa si voglia realizzare; a quanto ho capito, hai diverse tabelle con colonne diverse e devi inserire questi dati in una tabella temporanea. Non puoi semplicemente fare un backup e ripristinare l'intero database in un database temporaneo? O quello, o dovrai gestire un sacco di diversi tavoli temporanei. –