Criar uma tabela a partir dos dados de uma consulta no SQLServer

Em alguns momentos, nos deparamos em uma situação na qual precisamos criar uma tabela para armazenar os dados retornados de uma consulta. Para isso, podemos utilizar o SELECT INTO, e poupar tempo na criação da estrutura da tabela.

Como eu utilizo a cláusula INTO?

No exemplo abaixo, vamos decorrer uma situação na qual queremos consultar os dados da tabela “Usuarios”, fazendo um join com a tabela “Permissoes” e retornando as propriedades “Id” e “Nome” apenas de usuários que a permissão seja “admin”. A partir do resultado, iremos criar uma tabela chamada “Admins” utilizando a cláusula INTO.

SELECT A.Id, A.Nome INTO dbo.Admins
FROM dbo.Usuarios AS A
INNER JOIN dbo.Permissoes AS B ON (A.PermissaoId = B.PermissaoId)
WHERE B.Descricao = N'Admin'

E se a minha consulta não for concluída com êxito?

A cláusula INTO funciona em duas etapas, primeiro, a tabela é criada e posteriormente os dados são inseridos. Sendo assim, caso aconteça alguma falha na inserção dos dados, o rollback será dado apenas na operação de inserção dos dados, a tabela continuará existindo, mesmo que vazia.

Criar uma tabela a partir dos dados de uma consulta no SQLServer

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Rolar para o topo