2011-11-29 20 views
9

Ho due tabelle grandi e voglio combinare tutti i nomi delle colonne (non come una vista) in una nuova tabella.Inserire nella creazione della nuova tabella

mi non ho il permesso di fare clic destro su ogni tavolo e scegliere Crea per lo script, quindi mi chiedevo se esiste un modo per inserire entrambe le tabelle in una nuova tabella senza specificare i tipi di dati di colonna?

+0

non è possibile farlo direttamente, poiché è necessario specificare come combinare i due dataset. – Viruzzo

+0

@Viruzzo Questo non è necessariamente vero; puoi usare 'CROSS JOIN' (come ho detto nella mia risposta). –

+0

vero, ma poi avrebbe ottenuto un tavolo con il prodotto cartesiano dei due. Immagino che dovrebbe chiarire che tipo di risultato desidera. – Viruzzo

risposta

13
SELECT top 0 * 
INTO NewTable 
FROM BigTable1 
    CROSS JOIN BigTable2 
+0

In alternativa, se si dispone delle autorizzazioni per lo schema 'INFORMATION_SCHEMA', è possibile generare uno script' CREATE TABLE' tramite un'istruzione select sulla tabella 'INFORMATION_SCHEMA.COLUMNS', che contiene anche i tipi di dati della colonna. –

0

Se si dispone di creare diritti si dovrebbe essere in grado di utilizzare un:

INSERT INTO MyTable SELECT dichiarazione per fare questo.

EDIT:

avevo sbagliato

SELECT * INTO MYNEWTABLE FROM MYSOURCETABLE 
+1

'INSERT INTO' non creerà una nuova tabella. –

+1

Non penso che funzioni in T-SQL. – Bert

+0

Sì, sono stato un po ', sapevo che era qualcosa a che fare con la dichiarazione in. Grazie! –

6

Per TSQL,

SELECT ... 
INTO MyTable 
FROM ... 
3

È possibile utilizzare una query SELECT INTO TSQL - vedi MSDN link.

Problemi correlati