Eu tenho um sistema MS SQL Server 2008 Express que contém um banco de dados que eu gostaria de 'copiar e renomear' (para fins de teste), mas não conheço uma maneira simples de conseguir isso.
Percebo que na versão R2 do SQL Server existe um assistente de cópia de banco de dados, mas, infelizmente, não posso atualizar.
O banco de dados em questão está em torno de um show. Tentei restaurar um backup do banco de dados que desejo copiar para um novo banco de dados, mas sem sorte.
Respostas:
Instale o Microsoft SQL Management Studio, que você pode baixar gratuitamente no site da Microsoft:
Versão 2008
O Microsoft SQL Management Studio 2008 faz parte do SQL Server 2008 Express com Advanced Services
Versão 2012
Clique no botão de download e verifique
ENU\x64\SQLManagementStudio_x64_ENU.exe
Versão 2014
Clique no botão de download e verifique MgmtStudio
64BIT\SQLManagementStudio_x64_ENU.exe
Abra o Microsoft SQL Management Studio .
fonte
Clique com o botão direito do mouse no banco de dados para clonar, clique
Tasks
, clique emCopy Database...
. Siga o assistente e pronto.fonte
Você pode tentar desanexar o banco de dados, copiar os arquivos para novos nomes em um prompt de comando e anexar os dois bancos de dados.
No SQL:
No prompt de comando (simplifiquei os caminhos do arquivo por causa deste exemplo):
No SQL novamente:
fonte
select * from OriginalDB.sys.sysfiles
para encontrar a localização dos arquivos do banco de dados.Permission denied
em.mdf
arquivo. Não preciso dele agora, só precisava de um backup do banco de dados original, para poder substituí-lo mais tarde, apenas estou curioso para saber por que estou recebendo esse erro.exec sp_helpdb @dbname='TEMPDB';
Acontece que eu tentei restaurar de um backup incorretamente.
Inicialmente, criei um novo banco de dados e tentei restaurar o backup aqui. O que eu deveria ter feito e o que funcionou no final foi abrir a caixa de diálogo de restauração e digitar o nome do novo banco de dados no campo de destino.
Então, resumindo, a restauração de um backup fez o truque.
Obrigado por todos os comentários e sugestões pessoal
fonte
Este é o script que eu uso. Um pouco complicado, mas funciona. Testado no SQL Server 2012.
fonte
SET @sourceDb_log = (SELECT files.name FROM sys.databases dbs INNER JOIN sys.master_files files ON dbs.database_id=files.database_id WHERE dbs.name=@sourceDb AND files.type=1)
uma variável separada para @sourceDb_data com uma consulta semelhante (substituindo emfiles.type=0
). HTH!Nenhuma das soluções mencionadas aqui funcionou para mim - estou usando o SQL Server Management Studio 2014.
Em vez disso, tive que desmarcar a caixa de seleção "Fazer backup do log de cauda antes da restauração" na tela "Opções": na minha versão, ela está marcada por padrão e impede que a operação de restauração seja concluída. Após desmarcá-lo, a operação de Restauração prosseguiu sem problemas.
fonte
Usando o MS SQL Server 2012, você precisa executar 3 etapas básicas:
Primeiro, gere um
.sql
arquivo contendo apenas a estrutura do banco de dados de origem.sql
arquivo localmenteSegundo, substitua o banco de dados de origem pelo de destino no
.sql
arquivoPor fim, preencha com dados
Data Source=Mehdi\SQLEXPRESS;Initial Catalog=db_test;User ID=sa;Password=sqlrpwrd15
Você terminou.
fonte
No SQL Server 2008 R2, faça backup do banco de dados como um arquivo em uma pasta. Em seguida, escolha a opção de restauração que aparece na pasta "Banco de Dados". No assistente, digite o novo nome que você deseja no banco de dados de destino. E escolha restaurar do arquivo e use o arquivo que você acabou de criar. Eu apenas fiz e foi muito rápido (meu banco de dados era pequeno, mas ainda assim) Pablo.
fonte
Se o banco de dados não for muito grande, você poderá observar os comandos 'Script Database' no SQL Server Management Studio Express, que estão em um menu de contexto do item do banco de dados no explorer.
Você pode escolher o que todos devem escrever; você quer os objetos e os dados, é claro. Você salvará o script inteiro em um único arquivo. Em seguida, você pode usar esse arquivo para recriar o banco de dados; apenas verifique se o
USE
comando na parte superior está definido no banco de dados apropriado.fonte
A solução, com base neste comentário: https://stackoverflow.com/a/22409447/2399045 . Basta definir as configurações: nome do banco de dados, pasta temporária, pasta de arquivos db. E após a execução, você terá a cópia do banco de dados com o nome no formato "sourceDBName_yyyy-mm-dd".
fonte
Script baseado na resposta de Joe ( desanexar, copiar arquivos, anexar ambos ).
Não é necessário, mas talvez o erro de acesso negado na execução.
@dbName
e@copyDBName
variáveis antes.fonte
Você pode apenas criar um novo banco de dados e, em seguida, ir para tarefas, importar dados e importar todos os dados do banco de dados que você deseja duplicar para o banco de dados que você acabou de criar.
fonte
Outra maneira que faz o truque usando o assistente de importação / exportação , primeiro crie um banco de dados vazio, depois escolha a fonte que é seu servidor com o banco de dados de origem e, em seguida, no destino, escolha o mesmo servidor com o banco de dados de destino (usando o banco de dados vazio que você criou primeiro) e pressione Concluir
Ele criará todas as tabelas e transferirá todos os dados para o novo banco de dados,
fonte