Páginas

terça-feira, 26 de maio de 2015

[MS SQL Server] - Inserindo o resultado de uma consulta em uma nova tabela

Esta é uma tarefa simples, muito utilizada para fazer backup de tabelas ou extrair dados segundo um filtro.

Se a tabela ainda não existir, pode-se utilizar a cláusula INTO do comando SELECT para inserir os resultados em uma nova tabela com as mesmas colunas definidas no retorno do comando SELECT.

Para exemplificar, criaremos uma tabela simples para simular o cadastro de funcionários de uma empresa:

CREATE TABLE Funcionarios
(
    idFuncionario INT IDENTITY (1,1) PRIMARY KEY
    , nome VARCHAR(100) NOT NULL
    , dataAdmissao DATETIME NOT NULL
    , dataDemissao DATETIME NULL
)

-- Inserindo dados fictícios para testes
INSERT INTO Funcionarios VALUES
    ('Evandro', '2001-07-03', NULL)
    ,('José','2002-02-09',NULL)
    ,('Ronaldo','1995-09-25','2001-05-03')
    ,('Márcia','2003-03-22','2004-06-04')
    ,('Régis','1997-09-25','2004-08-07')
    ,('Renata','2008-02-27',NULL)
    ,('Mariana','2009-01-15',NULL)

Veja abaixo como o comando SELECT (com a cláusula INTO) pode ser utilizado para extrair os funcionários demitidos de uma empresa (Data de demissão preenchida) e armazená-los em uma nova tabela FuncionariosDemitidos

-- Criando tabela com os funcionários demitidos
SELECT * 
INTO FuncionariosDemitidos 
FROM Funcionarios
WHERE 
    dataDemissao is not null 

Observe o resultado de uma consulta sobre a nova tabela FuncionariosDemitidos:

 

Observe que apenas as linhas com a coluna DataDemissao preenchida foram inseridas na nova tabela.

Além disso, o nome dos campos criados na nova tabela são idênticos aos da tabela original.

Para maiores sobre a cláusula INTO do comando SELECT, consulte no MSDN: 
INTO Clause (Transact-SQL)


Referencia:
http://www.sqlserverdicas.com/2011/01/inserindo-o-resultado-de-uma-consulta.html

Um comentário:

  1. It is fairly common for operators to place some time restrict on a welcome of free spin thecasinosource.com provide. This normally ranges someplace between 30 and ninety days, however some sites really have} come throughout have set the time restrict at an unreasonable single day. A few of the highest sites, nonetheless, are starting to forgo deadlines all. Though usually more relevant for sports activities betting and bingo sites, there are some casino promo codes. These codes, quickly as} entered, present players entry to completely different promotions.

    ResponderExcluir