FAQ-Wiki-SQL Server

Como importar scripts SQL salvos para um banco de dados?

Resposta:

Existem duas formas de salvar os dados, suportadas pelo Recovery Toolbox for SQL Server:

  1. Voce pode salvar os scripts SQL no disco rigido; eles criarao objetos de bancos de dados, tabelas, por exemplo, e inserirao dados nestas tabelas.
  2. Voce tambem pode executar scripts em bancos de dados, definidos pelos usuarios; estes scripts sao escritos em linguagem SQL.

Note que os scripts SQL podem ser diferentes, apesar do fato de estarem nos mesmos arquivos do banco de dados. Isto acontece por causa das particularidades sintaticas nas queries, que sao executadas para conexao direta com o servidor atraves de ADO e em queries do SQL, realizadas no ambiente do Query Analyzer (Analisador de Queries) fornecido junto com o MS SQL Server (o uso do ":", o comando Go, etc.). A primeira forma e mais confiavel, enquanto que a segunda forma e mais conveniente.

Convertendo dados de scripts e salvando-os em disco

  1. 1. Mapeamento de dados salvos

    Se voce escolheu salvar os dados em disco, o Recovery Toolbox for SQL Server criara um subdiretorio, que inclui o nome do arquivo MDF de origem; este subdiretorio e criado no diretorio definido pelo usuario e todos os scripts serao colocados la. Todos os scripts sao nomeados a partir de uma regra; os nomes consistem de uma palavra e um digito. A palavra indica o papel do script, o digito indica seu numero. Existem varios tipos de script, por exemplo:

    • Types*.sql - scripts que criam tipos de dados, definidos pelos usuarios.
    • Tables*.sql - scripts que criam tabelas.
    • Indexes*.sql - scripts que criam chaves primarias e indices.
    • ForeignKeys*.sql - scripts que criam chaves estrangeiras.
    • Procedure*.sql - scripts que criam procedimentos armazenados.
    • Function*.sql - scripts que criam funcoes, definidas pelos usuarios.
    • View*.sql - scripts que criam exibicoes.
    • Triggers*.sql - scripts que criam gatilhos.
    • Data*.sql - scripts que inserem dados nas tabelas.

    O numero de sequencia do script nao contem nenhuma informacao util, nao aponta para nenhuma sequencia de execucao dos scripts ou qualquer outra informacao. Estes numeros sao utilizados somente para separar os dados e salva-los em uma serie de documentos menores, ao inves de um arquivo grande. Os usuarios podem definir o tamanho maximo do arquivo com scripts SQL. Alem disso, os usuarios devem atentar para a numeracao dos arquivos Data. Deve-se notar que cada arquivo do tipo Data pode conter dados para somente uma tabela. Arquivos com numeros sequenciais contem todos os dados para cada tabela.

    Nota: Se os numeros estiverem faltando para alguns arquivos, isto significa que algumas tabelas nao contem dados.
  2. 2. Sequencia de execucao de script

    Nesta figura, voce pode ver a ordem recomendada de execucao de script:

    A sequencia de execucao de script depende de restricoes existentes para dados existentes e estruturas da tabela. Preste atencao a estes fatores:

    1. Especifique a chave primaria correspondente, se voce quiser criar uma chave secundaria. Devido a este fato, estas operacoes sao salvas em diferentes arquivos, que devem ser executados nesta sequencia.
    2. Antes da criacao de indices e chaves secundarias, o programa preenche as tabelas. Isto e obrigatorio, porque a verificacao de integridade referencial e executada quando uma tabela com chave secundaria definida esta sendo preenchida. Quando tabelas com chaves secundarias sao preenchidas antes das tabelas com as chaves primarias correspondentes, ocorre um erro. Alem do mais, este metodo apresenta outra particularidade. Se os dados recuperados conflitarem com a chave primaria, indices unicos etc., neste caso, a tabela sera preenchida com os dados mesmo assim, mas as restricoes nao serao criadas (indice, chave primaria etc.). Se os usuarios desejarem outro comportamento, podem selecionar qual a sequencia de execucao de script desejada.
    3. A criacao dos objetos Procedures, Functions, Views e Triggers em um banco de dados apresenta algumas dificuldades, porque estes objetos podem ter dependencias sofisticadas e complicadas. Os Procedimentos podem referenciar outros Procedimentos, Exibicoes podem referenciar Funcoes, Gatilhos podem referenciar todos os objetos. E por isto que um programa nao podem ajudar a resolver este emaranhado. Os usuarios devem encontrar todas as dependencias manualmente e executar os scripts SQL na sequencia necessaria. Outra possibilidade consiste na execucao de todos os scripts deste grupo varias vezes, ate que todas as mensagens de erro desaparecam.
  3. 3. Arquivo Install.bat

    O arquivo Install.bat e criado para garantir a execucao automatizada de todos os scripts. Este arquivo executa todos os scripts que foram previamente salvos pela ferramenta. A sequencia de execucao de script sera a mesma utilizada quando aplicada ao banco de dados. Este arquivo em lote requer que o utilitario isqlw seja instalado, que e uma parte do cliente do MS SQL Server. Especifique os parametros Nome do servidor, Nome do banco de dados, Nome do usuario e Senha para o arquivo install.bat na linha de comando. Por exemplo: install.bat SQLServer SQLDatabase SQLUser SQLUserPassword

    Atencao:
    1. Os parametros devem estar separados por um espaco. Se o parametro em si contem um espaco, voce deve coloca-lo entre aspas.
    2. A sequencia de parametros nao pode ser modificada.
    3. Se o arquivo install.bat for executado sem os parametros, voce vera um breve guia de como utiliza-lo.
  4. 4. InstallTrusted.bat

    Se você deseja fazer logon no Microsoft SQL Server usando sua conta do Windows, use o arquivo InstallTrusted.bat. O arquivo InstallTrusted.bat possui dois parâmetros: Server name, Database name.

    Exemplo de uso: installtrusted.bat SQLServer SQLDatabase. Para obter detalhes sobre o logon via conta do Windows consulte aqui: https://docs.microsoft.com/pt-br/sql/relational-databases/security/authentication-access/principals-database-engine?view=sql-server-2017