Eu tenho um banco de dados chamado foo e um banco de dados chamado bar. Eu tenho uma tabela no foo chamada tblFoobar que eu quero mover (dados e tudo) para a barra de banco de dados do banco de dados foo. Qual é a instrução SQL para fazer isso?
sql
sql-server
copy
migrate
database-table
RyanKeeter
fonte
fonte
A tarefa "Importar dados" do SQL Server Management Studio (clique com o botão direito do mouse no nome do banco de dados e depois em tarefas) fará a maior parte disso. Execute-o no banco de dados para o qual você deseja copiar os dados.
Se as tabelas não existirem, elas serão criadas para você, mas você provavelmente precisará recriar quaisquer índices e outros. Se as tabelas existirem, ele anexará os novos dados por padrão, mas você poderá ajustá-los (editar mapeamentos) para excluir todos os dados existentes.
Eu uso isso o tempo todo e funciona bastante bem.
fonte
WHERE
condição usando a tarefa Importar Dados? Não consegui encontrar uma maneira de fazê-lo.identity
e asforeign key
referências são removidas no banco de dados de destino, alguma solução?Isso deve funcionar:
Ele vai não copiar constrangimentos, padrões ou índices. A tabela criada não terá um índice em cluster.
Como alternativa, você pode:
Se sua tabela de destino existir e estiver vazia.
fonte
INSERT INTO...
) funcionou para mim no Oracle.Se for apenas uma tabela, tudo o que você precisa fazer é
Uma coisa que você deve considerar são outras atualizações, como migrar outros objetos no futuro. Observe que suas tabelas de origem e destino não têm o mesmo nome. Isso significa que você também precisará fazer alterações se depender de objetos como visualizações, procedimentos armazenados e outros.
Com um ou vários objetos, você pode ir manualmente sem problemas. No entanto, quando existem mais do que apenas algumas atualizações, as ferramentas de comparação de terceiros são muito úteis. No momento, estou usando o ApexSQL Diff para migrações de esquema, mas você não pode dar errado com nenhuma outra ferramenta disponível.
fonte
Script do
create table
no estúdio de gerenciamento, execute esse script na barra para criar a tabela. (Clique com o botão direito do mouse na tabela no explorador de objetos, na tabela de scripts como, crie para ...)INSERT bar.[schema].table SELECT * FROM foo.[schema].table
fonte
SET IDENTITY_INSERT TblName ON
nesse caso.Você também pode usar o Assistente para Gerar Scripts do SQL Server para ajudar a orientar a criação de scripts SQL que podem fazer o seguinte:
Bom exemplo de fluxo de trabalho para o SQL Server 2008 com capturas de tela mostradas aqui .
fonte
Você pode seguir este caminho: (um exemplo geral)
Além disso, se você precisar gerar os nomes das colunas e inserir a cláusula de inserção, use:
Copie o resultado e cole na janela de consulta para representar os nomes das colunas da tabela e mesmo isso excluirá a coluna de identidade:
Lembre-se de que o script para copiar linhas funcionará se os bancos de dados pertencerem ao mesmo local.
Você pode tentar isso.
O nome do servidor é opcional se os dois bancos de dados estiverem no mesmo servidor.
fonte
Se houver uma tabela existente e quisermos copiar apenas dados, podemos tentar esta consulta.
inserir em Destination_Existing_Tbl, selecione col1, col2 FROM Source_Tbl
fonte
Copiar dados
fonte