Existe alternativa um “pobre homem” para RedGate para execução de scripts fora do esquema de banco de dados inteiro? [fechadas]

StackOverflow https://stackoverflow.com/questions/169107

Pergunta

Eu estou em uma situação onde eu iria para gerar um script para um banco de dados que eu poderia correr em outro servidor e obter uma base de dados idêntico ao original, mas sem qualquer um dos dados. Em essência, eu quero acabar com uma grande Criar script que captura o esquema de banco de dados.

Eu estou trabalhando em um ambiente que tem o SQL Server 2000 instalado, e eu sou incapaz de instalar as ferramentas de cliente 2005 (no caso em que eles iriam ajudar). Eu não posso pagar RedGate, mas eu realmente gostaria de ter um banco de dados com esquema idêntico em outro servidor.

Todas as sugestões? Qualquer .exe simples (não requer instalação) ferramentas, dicas ou truques T-SQL seria muito apreciado.

Update: O banco de dados que eu estou trabalhando com tem mais de 200 mesas e vários relacionamentos de chave estrangeira e restrições, de modo scripting manualmente cada tabela e colando juntos o script não é uma opção viável. Eu estou procurando algo melhor do que esta solução Manual

Atualização adicionais A menos que eu estou faltando completamente alguma coisa, isso não é uma solução viável usando o SQL 2000 ferramentas. Quando eu selecionar a opção para gerar um criar script em um banco de dados. Eu acabar com um script que contém um comando CREATE DATABASE, e cria nenhum dos objetos - as tabelas, as restrições, etc. estúdio de Gestão SQL 2005 de pode lidar com os objetos, bem como, mas o banco de dados está em um ambiente onde não existe maneira de me conectar uma instalação do Management Studio para ele.

Foi útil?

Solução

Executar SQL Server Management Studio, clique direito sobre o banco de dados e selecione Script Database as > Create to > file

Isso é para SQL Server 2005. SQL Server 2000 Enterprise Manager tem um comando semelhante. Basta clicar com o botão direito sobre o > All Tasks > Generate Scripts banco de dados.

EDIT: No SQL Server 2005, você pode selecionar "Database" no painel explorador do objeto e selecione vários bancos de dados no painel de detalhes. Em seguida, clique direito do mouse em sua seleção e "Banco de Dados Script como> Criar para> file". Isso fará com que ele colocá-los todos em um script e vai incluir todas as tabelas, chaves, procedimentos armazenados e restrições.

Outras dicas

Então, eu supondo que você não pode instalar o SQL Server Management Studio. Nem mesmo a versão gratuita. Se isso é uma coisa única vez, gostaria de instalar as ferramentas de portão vermelho. A versão de avaliação é totalmente funcional por 14 dias. Faça seu trabalho, em seguida, desinstalar. Você também pode verificar http://www.xsqlsoftware.com/ , eles têm funções semelhantes, como Red Gate. Se seu banco de dados é pequeno, então eles têm uma opção livre para você. Eu também gosto http://www.apexsql.com/ . Use o julgamento de um desses e, em seguida, tente novamente para convencer o seu patrão para comprar um.

Além das respostas acima, eu gostaria de sugerir que (para projetos futuros, pelo menos) que você não tem você design de banco de dados mestre no próprio banco de dados.

Uma maneira de conseguir isso é, ou simplesmente para manter suas tabelas de banco de dados, procedimentos etc como 'criar' scripts do dia um, e elaborar um roteiro mestre que vai puxar todos os scripts individuais em conjunto para implantação em um banco de dados de sua escolha .

Uma solução mais sofisticada é usar algo como Visual Banco de Dados Studio Edition (Provavelmente muito caro, se seus comentários são qualquer coisa ir perto) que permite tratar cada objeto de banco de dados como um nó em um projeto, enquanto ainda permitindo que o todo coisa a ser implantado com apenas alguns cliques.

A explicação de ambas as opções é mais simplificada, como há uma série de outras questões - versionamento, migração de dados, etc -., Mas o princípio é o mesmo

Uma vez que você extraiu seu script - usando uma das outras respostas -. Você pode querer considerar usando este script como base para o seu 'mestre'

Basta manter o 'design' do banco de dados -. Isso é puramente para 'implementações'

Tente pensar no processo como semelhante ao desenvolvimento de código -. A fonte e os binários são mantidos separados, com o último sendo gerado a partir do antigo

Eu tenho usado este programa a partir CodeProject com sucesso muitas vezes antes. Não só faz isso roteiro para fora o esquema, ele pode (opcionalmente) script de todas as instruções INSERT que você precisa para recriar o banco de dados.

Eu usei-o contra o SQL Server 2000 no passado. Obviamente, se você tem um milhão de linhas em uma tabela pode não ser uma boa idéia para o script o conteúdo, mas é uma ferramenta muito legal, na verdade, para fazer uma série de scripts SQL para replicar um banco de dados.

Se for operação one-off e você não gosta de encomendar os scripts objeto se apenas baixar uma versão de avaliação gratuita do RedGate SQL Compare .

É 14 dias versão de trabalho cheia por isso vai fazer todo o trabalho para você - é completamente solução legítima. E você vai ter todos os scripts para o futuro uso com o seu script manual. De qualquer forma eu tenho quase certeza que se você descobrir como acessível a ferramenta é que você vai comprá-lo em algum momento mais tarde e isso é o que eles provavelmente esperar, oferecendo totalmente prova de trabalho. De alguma forma, funcionou dessa maneira no meu caso.

Esteja ciente de que uma vez que o julgamento expira isso afeta todas as ferramentas para certificar-se fazer mais do mesmo.

Michael Lang, quando você botão direito do mouse no banco de dados e escolha para criar um script, existem várias opções de caixas que você precisa clicar para que tudo seja gerado. 2005 é muito mais fácil a este respeito, mas 2000 pode fazer isso, você só precisa selecionar as opções adequadas.

Se você está procurando uma versão de linha de comando, SQL Server que hospeda Toolkit tem trabalhado para mim no passado.

Microsoft banco de dados Publishing Wizard (no Visual Studio 2008).

Como você mencionou em SQL Server 2000 o comando para uso é:

Enquanto em Enterprise Manager selecione o banco de dados que você deseja objetos script de e, em seguida, clique direito e selecione Todas as tarefas -> Gerar Scripts SQL ...

Enquanto no Opções Pane é útil para seleccionar a opção Criar um arquivo por objeto -lo dessa forma você pode armazenar cada objeto no controle de origem separadamente.

Então sempre que você fazer algumas alterações em um tableA você pode verificá-la no controle de origem para que os outros saibam que você trabalhar com ele e o depois de terminar você pode script que único objeto e salvar check-in.

Para script de um único objeto que possa lhe a mesma opção Todas as tarefas -.> Gerar Scripts SQL ... e selecione apenas que um objeto

O único problema com essa abordagem é quando você deseja restaurar o banco de dados completo que você precisa para cuidar de objetos dependentes no sentido de que o objeto de nível superior deve ser restaurado antes aqueles que delas dependem.

Ironicamente quando você script de todo o banco de dados para um arquivo os objetos não são ordenados em termos de dependência, mas sim com base na data de criação. Isso leva a erros quando você tentar usá-lo para restaurar o DB completo.

Nós acabou criando arquivo de lote que iria criar cada objeto chamando separadamente "osql"

E isso tudo funcionou muito bem naquela época

Agora usamos SQLCompare Pro e nos Cofres-fortes de ou que aborrecimento, mas se você não fizer liberação freqüentemente você pode viver sem ele.

Os outros estão corretas, mas, a fim de criar um banco de dados completo a partir do zero, você precisa criar um 'dispositivo' em SQL antes de executar a criar tabelas e procedimentos de scripts ...

Use ADODB, já que quase todos (se não todos) caixa de Windows tem instalado para executar o script.

O inferno, você pode até escrever um VBScript que executa a construir seu banco de dados inteiro. Quaisquer tabelas de domínio que você tem, você precisa se lembrar de ligar a inserção de identidade antes de adicionar os itens para o DB.

Estou aberto a partilha de código fonte, se você precisar dele. Eu tinha que escrever a mesma coisa há alguns anos atrás, e acabou com 3 scripts, que criou o dispositivo, em seguida, as tabelas, em seguida, os procedimentos / gatilhos e Data Domain. Eu escrevi o código para analisar o script padrão e permitir que o usuário nomear o seu próprio banco de dados e logins, etc .. Você pode não ter que ir tão longe.

Espero que isso ajude a todos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top