SQL Server-criar uma cópia de uma tabela de banco de dados e colocá-la na mesma base de dados?

Tenho uma tabela ABC numa base de dados DB. Eu quero criar cópias do ABC com nomes ABC_1, ABC_2, ABC_3 no mesmo DB. Como posso fazer isso usando qualquer Estúdio de gestão (de preferência) ou consultas SQL ?

isto é para o servidor SQL 2008 R2.

Author: sequel.learner, 2013-03-15

7 answers

Uso SELECT ... INTO:

SELECT *
INTO ABC_1
FROM ABC;

Isto irá criar uma nova tabela ABC_1 que tem a mesma estrutura de colunas que ABC e contém os mesmos dados. Restrições (por exemplo, chaves, valores padrão), no entanto, não são copiados.

Você pode executar esta consulta várias vezes com um nome de tabela diferente de cada vez.


Se não precisar de copiar os dados, apenas para criar uma nova tabela vazia com a mesma estrutura de colunas, adicione uma cláusula WHERE com uma expressão falsa:

SELECT *
INTO ABC_1
FROM ABC
WHERE 1 <> 1;
 106
Author: Mahmoud Gamal, 2016-05-03 19:35:35

Copiar o esquema (gerar DDL) através do SSMS UI

No SSMS expandir a sua base de dados em Object Explorer, vá para Tabelas, botão direito do mouse na tabela que você está interessado e selecione Tabela de Script Como, Criar Para, Nova Janela do Editor de Consulta. Fazer um localizar e substituir (CTRL + H) para alterar o nome da tabela (por exemplo, colocar ABC em Encontrar o Que campo e ABC_1 em Substituir Com, em seguida, clique em OK).

Entendido. Esquema através de T-SQL

As outras respostas que mostram como fazer isso pelo SQL também funcionam bem, mas a diferença com este método é que você também terá quaisquer índices, restrições e gatilhos.

Copiar Os Dados

Se quiser incluir dados, depois de criar esta tabela, execute o programa abaixo para copiar todos os dados do ABC (mantendo os mesmos valores de ID se tiver um campo de identidade):

set identity_insert ABC_1 off
insert into ABC_1 select * from ABC
set identity_insert ABC_1 on
 10
Author: JohnLBevan, 2017-10-23 09:36:02

Primeira Opção

select *
  into ABC_1
  from ABC;

2ª opção: usar a SSIS, isto é, carregue com o botão direito na base de dados do explorador de objectos > todas as tarefas > exportar dados

  • fonte e alvo: o seu DB
  • tabela de origem: ABC
  • tabela de destino: ABC_1 (a tabela será criada)
 3
Author: Claude, 2013-03-15 08:59:23

Você precisa escrever SSIS para copiar a tabela e seus dados, restrições e gatilhos. Nós temos em nossa organização um software chamado Kal Admin pelos sistemas kalrom que tem uma versão livre para download (eu acho que a funcionalidade de tabelas de cópia é opcional)

 2
Author: Chris D, 2016-06-01 04:57:36

Se quiser duplicar a tabela com todas as suas restrições e teclas segue isto abaixo:

  1. Abra a base de dados no Estúdio de gestão SQL.
  2. carregue com o botão direito na mesa que deseja duplicar.
  3. Seleccione a tabela de programas como - > criar para - > nova janela do Editor de pesquisas. Isto irá gerar um programa para recriar a tabela numa nova janela de pesquisa.
  4. muda o nome da tabela e as restrições e teclas relativas no programa.
  5. Execute o roteiro.

Depois, para copiar os dados, execute isto por baixo do programa:

SET IDENTITY_INSERT DuplicateTable ON

INSERT Into DuplicateTable ([Column1], [Column2], [Column3], [Column4],... ) 
SELECT [Column1], [Column2], [Column3], [Column4],... FROM MainTable

SET IDENTITY_INSERT DuplicateTable OFF
 2
Author: Md. Rousonur Jaman, 2017-09-11 02:14:52

Use SQL server manegement studio ou netcat e isso será mais fácil de manipular sql

 1
Author: gasroot, 2013-03-15 08:59:39

Esta é outra opção:

select top 0 * into <new_table> from <original_table>
 1
Author: Keni, 2016-05-11 02:23:11