Tenho um banco de dados SQL e tabelas que gostaria de replicar em outro SQL Server. Gostaria de criar um script SQL que cria o banco de dados e as tabelas em um único script.
Posso criar o script "Criar" usando o SQL Management Studio para cada caso (Banco de Dados e Tabelas), mas gostaria de saber se combinar os dois scripts "Criar" em um único script seria suficiente.
Obrigado.
sql
sql-server
Tony
fonte
fonte
Respostas:
No SQL Server Management Studio, você pode clicar com o botão direito do mouse no banco de dados que deseja replicar e selecionar "Script Database as" para que a ferramenta crie o arquivo SQL apropriado para replicar esse banco de dados em outro servidor. Você pode repetir esse processo para cada tabela que deseja criar e, em seguida, mesclar os arquivos em um único arquivo SQL. Não se esqueça de adicionar uma instrução using depois de criar seu banco de dados, mas antes de qualquer criação de tabela.
Em versões mais recentes do SQL Server, você pode obter isso em um arquivo no SSMS.
Isso iniciará um assistente onde você pode fazer o script de todo o banco de dados ou apenas partes. Não parece haver uma maneira T-SQL de fazer isso.
fonte
Embora a resposta de Clayton o leve até lá (eventualmente), no SQL2005 / 2008 / R2 / 2012 você tem uma opção muito mais fácil:
Clique com o botão direito do mouse no Banco de dados, selecione
Tasks
eGenerate Scripts
, em seguida , o que iniciará o Assistente de script. Isso permite que você gere um único script que pode recriar o banco de dados completo, incluindo tabela / índices e restrições / procedimentos armazenados / funções / usuários / etc. Há uma infinidade de opções que você pode configurar para personalizar a saída, mas a maioria é autoexplicativa.Se você estiver satisfeito com as opções padrão, poderá fazer todo o trabalho em questão de segundos.
Se você deseja recriar os dados no banco de dados (como uma série de INSERTS), também recomendo o SSMS Tools Pack (gratuito para a versão SQL 2008, pago para a versão SQL 2012).
fonte
Uma excelente explicação pode ser encontrada aqui: Gerar script no SQL Server Management Studio
Cortesia Ali Issa Aqui está o que você deve fazer:
Se você deseja criar um script que gere apenas as tabelas (sem dados), você pode pular a parte avançada das instruções!
fonte
Não sei por que o SSMS não leva em conta a ordem de execução, mas simplesmente não o faz. Isso não é um problema para bancos de dados pequenos, mas e se seu banco de dados tiver 200 objetos? Nesse caso, a ordem de execução é importante porque não é realmente fácil passar por tudo isso.
Para scripts não ordenados gerados por SSMS, você pode seguir
a) Execute o script (alguns objetos serão inseridos de alguma forma, haverá alguns erros)
b) Remova todos os objetos do script que foram adicionados ao banco de dados
c) Volte para a) até que tudo seja eventualmente executado
A opção alternativa é usar uma ferramenta de terceiros, como ApexSQL Script ou qualquer outra ferramenta já mencionada neste tópico (pacote de ferramentas SSMS, Red Gate e outros).
Tudo isso cuidará das dependências para você e economizará ainda mais tempo.
fonte
Sim, você pode adicionar quantas instruções SQL desejar em um único script. Apenas uma coisa a ser observada: a ordem é importante. Você não pode fazer INSERT em uma tabela até que você a CRIE; você não pode definir uma chave estrangeira até que a chave primária seja inserida.
fonte