AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 116600
Accepted
Ste Bov
Ste Bov
Asked: 2015-10-01 06:17:37 +0800 CST2015-10-01 06:17:37 +0800 CST 2015-10-01 06:17:37 +0800 CST

Gerar script de criação de banco de dados em um procedimento armazenado

  • 772

Estou tentando automatizar a limpeza de nosso ambiente de teste para alinhá-lo com a produção no final de cada sprint.

No momento, isso está sendo concluído pelo ambiente de teste, pegando o backup completo e fazendo uma restauração com mover e substituir; no entanto, isso está consumindo a maior parte do espaço que temos.

A intenção é criar o ambiente do zero e preencher apenas as tabelas necessárias.

Posso usar 'Clique com o botão direito do mouse > Tarefas > Gerar scripts...' para criar a estrutura do banco de dados.

Existe uma maneira de criar esse script de dentro de um procedimento armazenado para que possa ser usado para recriar o banco de dados

Também estou trabalhando neste bit como está, mas obviamente esse script apenas criará o banco de dados em seu tamanho atual, então todos os tamanhos de arquivo precisam ser modificados assim que o script for gerado

Agradeço qualquer ajuda

sql-server sql-server-2012
  • 1 1 respostas
  • 698 Views

1 respostas

  • Voted
  1. Best Answer
    Kenneth Fisher
    2015-10-01T06:30:20+08:002015-10-01T06:30:20+08:00

    Existem vários métodos que você pode usar. Em ordem de dificuldade (IMHO do mais fácil para o mais difícil)

    • Crie manualmente (usando scripts de geração) uma estrutura apenas DB, preencha-a apenas com os dados necessários para a cópia e, em seguida, faça backup/restaure-a. (você também pode fazer apenas estrutura e codificar a cópia de dados)
      • Up side- Este é o método mais fácil de codificar e deve ser bastante rápido
      • Down side- Isso requer manutenção constante à medida que o código/dados do seu banco de dados de origem muda.
    • Crie manualmente os scripts e faça com que o SP os execute (provavelmente usando SQL dinâmico) e copie os dados.
      • Up side- Também bastante fácil de implementar e não requer um banco de dados "modelo" adicional que você copiará.
      • Down side- Também requer manutenção constante
    • Powershell - Você usa um script POSH para criar o novo banco de dados, gerar os scripts e executá-los.
      • Up side- Este é o método mais poderoso. Não exigirá muita manutenção e você provavelmente poderá até encontrar um script que outra pessoa escreveu como ponto de partida.
      • Down side- Isso requer que você conheça o Powershell pelo menos um pouco. (O que também pode ser considerado um lado positivo)
    • Procedimentos de automação OLE - sp_Create etc. Este será o método mais difícil/complicado (conhecendo pelo menos um pouco disso e PoSH), mas uma vez escrito também não exigirá muita manutenção.
      • Up Side- Manutenção mínima e tudo pode ser executado dentro do SQL
      • Down side- código mais difícil, você provavelmente não consegue encontrar um script já construído e precisa habilitar os procedimentos de automação OLE (um risco de segurança, se mínimo).

    Eu provavelmente devo observar que meu pensamento original era que você queria que isso fosse reproduzível. Se você só precisa fazer isso uma vez, @MaxVernon está certo. Trunque as tabelas nas quais você não precisa de dados (ou exclua o que não precisa) e reduza. Você pode ter que fazer isso um pouco de cada vez, dependendo de como você está limitado pelo espaço.

    • 5

relate perguntas

  • SQL Server - Como as páginas de dados são armazenadas ao usar um índice clusterizado

  • Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?

  • Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?

  • Quais são as principais causas de deadlocks e podem ser evitadas?

  • Como determinar se um Índice é necessário ou necessário

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve