2011-01-04 5 views
6

Conosco due modi per inserire dati in una tabellaCome inserire un mix di valori espliciti e dati recuperati da un'altra tabella

Metodo 1: valori espliciti

INSERT INTO table 
('field1', 'field2', 'field3') 
VALUES ('value1', 'value2', 'value3') 

Metodo 2: copia dei dati da un altro tabella

INSERT INTO table 
SELECT 'field1', 'field2', 'field3' 
FROM otherTable 

Entrambi funzionano solo se tutti i campi sono compilati nello stesso modo. Ho bisogno di inserire nella stessa riga un mix di valori espliciti e dati copiati. È possibile?

risposta

9

Sì, lo è. (Si noti che nell'esempio del metodo 2, questo inserirà effettivamente valori espliciti e non i dati dell'altra tabella)

ad es.

INSERT SomeTable(FieldA, FieldB, FieldC) 
SELECT FieldA, FieldB, 'Explicit Value' 
FROM SomeOtherTable 
+0

Eccellente! Grazie mille :) –

+0

C'è un modo per inserire più righe in questo modo? Cioè, voglio inserire ("a", "b", CampoA), ("c", "d", CampoA) ... – Zxaos

+1

@Zxaos - sì, da SQL 2008 in poi puoi farlo tramite Row Costruttore: http://sqlblog.com/blogs/peter_debetta/archive/2007/12/06/row-constructor-or-table-valued-parameter.aspx – AdaTheDev

Problemi correlati