Pergunta

Como passar valores padrão na construção Insert Select no SQL?

Eu tenho uma tabela:

    create table1 (field1 int, field2 int, field3 int default 1337)
    create table2 (field1 int, field2 int)

Eu quero inserir table2 em table1 com uma construção semelhante a esta:

    insert into table1 select field1, field2, DEFAULT from table2

É possível usar algo em vez de DEFAULT no meu exemplo para começar a tarefa feita? Como são tabelas previamente selecionados normalmente inseridos com valores padrão?

Foi útil?

Solução

Tente

INSERT INTO table1 (field1, field2)
SELECT field1, field2 FROM table2

Eu testei isso usando SQL Server 2005

DECLARE @Table1 TABLE(
        field1 INT,
        field2 INT,
        field3 INT DEFAULT 1337
)

INSERT INTO @Table1 (field1,field2,field3) SELECT 1, 2, 3

DECLARE @Table2 TABLE(
        field1 INT,
        field2 INT
)

INSERT INTO @Table2 (field1,field2) SELECT 15, 16

INSERT INTO @Table1 (field1,field2)
SELECT  field1,
        field2
FROM    @Table2

SELECT * FROM @Table1
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top