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: (
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)
-- 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
Nenhum comentário:
Postar um comentário