SQL Server-criar uma cópia de uma tabela de banco de dados e colocá-la na mesma base de dados?
isto é para o servidor SQL 2008 R2.
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;
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
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)
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)
Se quiser duplicar a tabela com todas as suas restrições e teclas segue isto abaixo:
- Abra a base de dados no Estúdio de gestão SQL.
- carregue com o botão direito na mesa que deseja duplicar.
- 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.
- muda o nome da tabela e as restrições e teclas relativas no programa.
- 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
Use SQL server manegement studio ou netcat e isso será mais fácil de manipular sql
Esta é outra opção:
select top 0 * into <new_table> from <original_table>