Com o tempo, a maioria dos aplicativos de banco de dados cresce, se torna mais complexa e precisa dar suporte a mais usuários. Em algum momento da vida do seu aplicativo Microsoft Office Access, talvez você queira considerar o upsizing para um banco de dados Microsoft SQL Server para otimizar o desempenho, a escalabilidade, a disponibilidade, a segurança, a confiabilidade e a capacidade de recuperação.
Neste artigo
Sobre o upsizing a Microsoft Office de dados do Access
O upsizing é o processo de migrar algumas ou todas as objetos de banco de dados de um banco de dados do Access para um banco de dados novo ou existente SQL Server ou novo projeto do Access (.adp).
Benefícios do upsizing a database to SQL Server
-
Alto desempenho e escalabilidade Em muitas situações, o SQL Server oferece melhor desempenho do que um banco de dados do Access. SQL Server também oferece suporte para bancos de dados muito grandes e com tamanho de terabyte, que é muito maior do que o limite atual para um banco de dados do Access de dois gigabytes. Por fim, SQL Server funciona de forma muito eficiente processando consultas em paralelo (usando vários threads nativos em um único processo para lidar com solicitações de usuário) e minimizando requisitos de memória adicionais quando mais usuários são adicionados.
-
Disponibilidade aumentada SQL Server permite que você faça um backup dinâmico, incremental ou completo, do banco de dados enquanto ele estiver em uso. Consequentemente, não é necessário obrigar os usuários a sair do banco de dados para fazer backup dos dados.
-
Segurança aprimorada Usando uma conexão confiável, SQL Server pode se integrar à segurança do sistema Windows para fornecer um único acesso integrado à rede e ao banco de dados, empregando o melhor de ambos os sistemas de segurança. Isso facilita muito a administração de esquemas de segurança complexos.
-
Capacidade de recuperação imediata Em caso de falha do sistema (como falha no sistema operacional ou falha de energia), o SQL Server tem um mecanismo de recuperação automático que recupera um banco de dados até o último estado de consistência em questão de minutos, sem intervenção do administrador do banco de dados.
-
Processamento baseado em servidor O SQL Server em uma configuração de cliente/servidor reduz o tráfego de rede perante o processamento de consultas de banco de dados no servidor antes de enviar resultados para o cliente. Fazer com que o servidor faça o processamento geralmente é muito mais eficiente, especialmente quando se trabalha com conjuntos de dados grandes.
Seu aplicativo também pode usar funções definidas pelo usuário, procedimentos armazenados e gatilhos para centralizar e compartilhar lógicas de aplicativos, regras e políticas de negócios, consultas complexas, validação de dados e código de integridade referencial no servidor, em vez de no cliente.
Maneiras de fazer o upsize
O Assistente de Upsizing move objetos de banco de dados e os dados que eles contêm de um banco de dados do Access para um banco de dados novo ou existente SQL Server banco de dados.
Há três maneiras de usar o Assistente de Upsizing:
-
Upsize todos os objetos de banco de dados de um banco de dados do Access para um projeto do Access para que você possa criar um aplicativo cliente/servidor. Essa abordagem requer algumas alterações adicionais de aplicativo e modificação no código e consultas complexas.
-
Upsize only data or data definitions from an Access database to a SQL Server database.
-
Crie um front-end do banco de dados do Access para um back-end SQL Server banco de dados para que você possa criar um aplicativo front-end/back-end. Essa abordagem requer muito pouca modificação do aplicativo, pois o código ainda está usando o mecanismo de banco de dados do Access (ACE).
Antes de fazer o upsize de um banco de dados do Access
Antes de fazer o upsize do banco de dados do Access para um banco de dados SQL Server ou projeto do Access, considere fazer o seguinte:
-
Fazer backup do seu banco de dados Embora o Assistente de Upsizing não remova nenhum objeto de dados ou banco de dados do banco de dados do Access, é uma boa ideia criar uma cópia de backup do banco de dados do Access antes de a fazer o upsize.
-
Verifique se você tem espaço em disco adequado Você deve ter espaço em disco adequado no dispositivo que conterá o banco de dados com upsized. O Assistente de Upsizing funciona melhor quando há muito espaço em disco disponível.
-
Criar índices exclusivos Uma tabela vinculada deve ter um índice exclusivo a ser atualizado no Access. O Assistente de Upsizing pode fazer o upsize de um índice exclusivo existente, mas não pode criar um em que nenhum exista. Se você quiser atualizar suas tabelas, certifique-se de adicionar um índice exclusivo a cada tabela do Access antes de atualizar.
-
Atribuir a si mesmo permissões apropriadas no banco de dados SQL Server banco de dados
-
Para fazer o upsize para um banco de dados existente, você precisa CRIAR TABELA e CRIAR permissões PADRÃO.
-
Para criar um novo banco de dados, você precisa de permissão CRIAR BANCO DE DADOS e SELECIONAR permissões nas tabelas do sistema no banco de dados Mestre.
-
O Assistente de Upsizing do Access 2007 é otimizado para trabalhar com Microsoft SQL Server 2000 e SQL Server 2005.
Usar o Assistente de Upsizing
-
Na guia Ferramentas de Banco de Dados, no grupo Mover Dados, clique em SQL Server.
O Assistente de Upsizing é iniciado.
Etapa 1: optar por fazer o upsize para um banco de dados existente ou um novo banco de dados
Na primeira página do Assistente, especifique se deseja fazer o upsize do banco de dados do Access para um banco de dados SQL Server existente ou criar um novo banco de dados de SQL Server.
-
Usar banco de dados existente Se você selecionar essa opção e clicar em Próximo, o Access exibirá a caixa de diálogo Selecionar Fonte de Dados para que você possa criar uma conexão ODBC com o banco de dados SQL Server existente.
Sobre fonte de dados ODBC
Uma fonte de dados é uma fonte de dados combinada com as informações de conexão necessárias para acessar esses dados. Exemplos de fontes de dados são Access, SQL Server, Oracle RDBMS, uma planilha e um arquivo de texto. Local do servidor, nome do banco de dados, ID de logon, senha e diversas opções de driver ODBC que descrevem como se conectar à fonte de dados são exemplos de informações de conexão.
Na arquitetura ODBC, um aplicativo (como o Access ou um programa do Microsoft Visual Basic) se conecta ao Gerenciador de Driver ODBC, que, por sua vez, usa um driver ODBC específico (por exemplo, driver ODBC do Microsoft SQL) para se conectar a uma fonte de dados (nesse caso, um banco de dados SQL Server). No Access, use fontes de dados ODBC para se conectar a fontes de dados externas ao Access que não tenham drivers internos.
Para se conectar a essas fontes de dados, faça o seguinte:
-
Instale o driver ODBC apropriado no computador que contém a fonte de dados.
-
Defina um nome da fonte de dados (DSN) usando o Administrador de Fonte de Dados ODBC para armazenar as informações de conexão no registro do Microsoft Windows, em um arquivo DSN ou em uma cadeia de conexão no código do Visual Basic para passar as informações de conexão diretamente para o Gerenciador de Driver ODBC.
Fontes de dados de computador
As fontes de dados do computador armazenam informações de conexão no Registro do Windows em um computador específico com um nome definido pelo usuário. É possível usar fontes de dados de computador somente no computador em que elas estão definidas. Há dois tipos de fontes de dados de computador: usuário e sistema. Fontes de dados do usuário podem ser usadas somente pelo usuário atual e são visíveis apenas para esse usuário. Fontes de dados do sistema podem ser usadas por todos os usuários de um computador e ficam visíveis a todos os usuários no computador e nos serviços de todo o sistema. Uma fonte de dados de computador é especialmente útil para fornecer segurança adicional, pois somente usuários conectados podem ver uma fonte de dados de computador, e elas não podem ser copiadas por um usuário remoto para outro computador.
Fontes de dados de arquivo
Fontes de dados de arquivo (também chamadas de arquivos DSN) armazenam informações de conexão em um arquivo de texto, não no Registro do Windows, e geralmente são mais flexíveis para uso do que as fontes de dados de computador. Por exemplo, você pode copiar uma fonte de dados de arquivo para qualquer computador com o driver ODBC correto para que seu aplicativo possa contar com informações de conexão consistentes e precisas para todos os computadores que ele usa. Ou você pode colocar a fonte de dados de arquivo em um único servidor, compartilhá-la entre vários computadores na rede e manter facilmente as informações de conexão em um único local.
Uma fonte de dados de arquivo também pode ser compartilhável. Uma fonte de dados de arquivo não compartilhamento reside em um único computador e aponta para uma fonte de dados do computador. É possível usar fontes de dados de arquivo compartilháveis para acessar fontes de dados de computador existentes de fontes de dados de arquivo.
Cadeias de conexão
Em um módulo, é possível definir uma cadeia de conexão formatada que especifique informações de conexão. Uma cadeia de caracteres de conexão passa as informações de conexão diretamente para o Gerenciador de Driver ODBC e ajuda a simplificar seu aplicativo removendo o requisito de que um administrador do sistema ou usuário primeiro crie um DSN antes de usar o banco de dados.
-
-
Criar novo banco de dados Se você selecionar essa opção e clicar em Próximo, o Access exibirá uma página onde você inserirá informações sobre o novo banco de dados SQL Server banco de dados.
-
Quais SQL Server você gostaria de usar para esse banco de dados? Digite o nome do servidor que você gostaria de usar.
-
Usar conexão confiável Você pode usar uma conexão confiável, ou seja, SQL Server pode se integrar à segurança do sistema operacional Windows para fornecer um único logoff na rede e no banco de dados.
-
ID de logon e Senha Se você não usar uma conexão confiável, digite a ID de logon e a senha de uma conta com privilégios CREATE DATABASE no servidor.
-
Como você deseja nomear seu novo banco de dados SQL Server de dados? Digite o nome do novo banco SQL Server banco de dados. O Access revisa o nome se estiver em conflito com um nome de banco de dados existente e adiciona um sufixo numerado (mydatabase 1, por exemplo).
-
Etapa 2: Escolher quais tabelas serão acionadas
Nesta etapa, selecione as tabelas do Access que deseja fazer o upsize para o banco de dados SQL Server. Selecione as tabelas que você deseja fazer o upsize e, em seguida, use os botões de seta para movê-los para a lista Exportar para SQL Server. Como alternativa, você pode clicar duas vezes em uma tabela para movê-la de uma lista para a outra.
A lista Tabelas Disponíveis inclui todas as tabelas vinculadas, exceto SQL Server tabelas já em um banco SQL Server banco de dados. Tabelas vinculadas que apontam para um banco de dados SQL Server que foi selecionado para o upsizing aparecem automaticamente na caixa de listagem Exportar para SQL Server e não podem ser removidas. Tabelas que não estão visíveis no Painel de Navegação também são excluídas, incluindo tabelas ocultas e tabelas do sistema.
Dica: Qualquer tabela que tenha um nome terminando em "_local" é excluída da lista de tabelas disponíveis para evitar o upsizing de tabelas que já foram upsized. Se você quiser fazer o upsize essas tabelas novamente, renomeie-as antes de executar o Assistente de Upsizing removendo o sufixo "_local".
Etapa 3: Especificar os atributos e as opções a serem upsized
Nesta etapa, você seleciona quais atributos de tabela será a ser acionada no banco de dados SQL Server de dados. Por padrão, todos os atributos são selecionados para o upsizing por padrão.
Observação: Por padrão, o Assistente de Upsizing converte nomes de campo do Access em nomes SQL Server de campo legais e converte os tipos de dados do Access em tipos de dados equivalentes SQL Server dados.
Quais atributos de tabela você deseja fazer upsize?
A tabela a seguir lista os atributos que você pode upsize e descreve como o Assistente de Upsizing lida com cada um:
Atributo |
Ação se selecionada |
|||||||||||||||
Índices |
O Assistente de Upsizing aciona todos os índices. O Assistente de Upsizing converte as chaves primárias do Access em SQL Server índices e as marca como SQL Server chaves principais. Se você optar por vincular a tabela SQL Server upsized ao banco de dados do Access, o Assistente de Upsizing também adiciona o prefixo "aaaaa" ao nome do índice. Isso porque o Access escolhe o índice que está primeiro em ordem alfabética na lista de índices disponíveis como a chave primária e o prefixo "aaaaa" garante que o índice correto seja escolhido. Todos os outros índices mantêm seus nomes, exceto onde caracteres ilegais são substituídos pelo caractere "_". Índices de Acesso exclusivos e não exclusivos se tornam índices de SQL Server exclusivos. Uma tabela vinculada deve ter um índice exclusivo a ser atualizado no Access. O Assistente de Upsizing pode fazer o upsize de um índice exclusivo existente, mas não pode criar um em que nenhum exista. Se você quiser atualizar os dados em suas tabelas depois de atualizá-los, certifique-se de adicionar um índice exclusivo a cada tabela do Access antes de fazer o upsizing. |
|||||||||||||||
Regras de validação |
O Assistente de Upsizing aciona o seguinte como ativar e inserir gatilhos:
Um gatilho é uma série de instruções transact-SQL associadas a uma SQL Server de dados. Uma tabela pode ter três gatilhos, um para cada um dos comandos que podem modificar dados em uma tabela: os comandos UPDATE, INSERT e DELETE. O gatilho é executado automaticamente quando o comando é executado. O Assistente de Upsizing usa gatilhos em vez de SQL Server regras para impor a validação de nível de campo porque as regras SQL Server não permitem que você exibe mensagens de erro personalizadas. Cada regra de validação não necessariamente tem uma correspondência um para um com um gatilho. Cada regra de validação pode se tornar parte de vários gatilhos, e cada gatilho pode conter código para emular a funcionalidade de várias regras de validação. Quando você definir a propriedade Required de um campo Access como true, um usuário não pode inserir um registro e deixar o campo necessário nulo (se não houver nenhum limite padrão para o campo) ou tornar o campo nulo ao atualizar um registro. Os campos necessários são upsized para campos que não permitem valores Null em SQL Server. Texto de validação A propriedade Texto de Validação de Banco de Dados do Access é convertida na propriedade Texto de Validação do Projeto do Access. Isso permite que as mensagens de erro amigáveis do Access sejam exibidas no caso de uma violação de restrição no tempo de executar. |
|||||||||||||||
Padrões |
O Assistente de Upsizing atualiza todas as propriedades de Valor Padrão para objetos padrão do Instituto Nacional de Padrões (ANSI). |
|||||||||||||||
Relações de tabelas |
O Assistente de Upsizing aciona todas as relações de tabela. Você pode decidir como atualizar relações de tabela e integridade referencial usando gatilhos de atualização, inserção ou exclusão ou usando a Integridade Referencial Declarada (DRI). O DRI funciona da mesma forma que a integridade referencial do Access definindo restrições de chave primárias para tabelas base (o lado "um" de uma relação um para muitos) e restrições de chave estrangeira para tabelas estrangeiras (normalmente o lado "muitos" de uma relação um para muitos).
|
Quais opções de dados você deseja incluir?
-
Adicionar campos de data/hora a tabelas SQL Server usa um campo de data/hora para indicar que um registro foi alterado (mas não quando foi alterado) criando um campo de valor exclusivo e atualizando esse campo sempre que um registro é atualizado. Para uma tabela vinculada, o Access usa o valor nos campos de data/hora para determinar se um registro foi alterado antes de atualizá-lo. Em geral, um campo de data/hora fornece o melhor desempenho e confiabilidade. Sem um campo de data/hora, SQL Server verificar todos os campos no registro para determinar se o registro foi alterado, o que retarda o desempenho.
A tabela a seguir descreve as configurações disponíveis nesta lista:
Configuração |
Descrição |
Sim, deixe o assistente decidir |
Se as tabelas originais do Access contêm campos de ponto flutuante (Single ou Double), Memorando ou objeto OLE, o Assistente de Upsizing criará novos campos de data/hora nas tabelas de SQL Server resultantes para esses campos. |
Sim, sempre |
O Assistente de Upsizing cria um campo de data/hora para todas as tabelas com upsized independentemente dos tipos de campo que eles contêm. Isso melhora o desempenho de tabelas de Acesso com upsized que podem não conter Campos de Memorando, Objeto OLE ou ponto flutuante, mas que têm campos de outros tipos. |
Não, Nunca |
O Assistente de Upsizing não adiciona campos de data/hora a tabelas. |
Importante: Em tabelas de SQL Server vinculadas, o Access não verifica se os campos de objeto Memorando ou OLE foram alterados porque esses campos podem ter muitos megabytes de tamanho e a comparação pode ser muito demorada e demorada. Portanto, se apenas um campo de texto ou imagem tiver sido alterado e não houver um campo de data/hora, o Access substituirá a alteração. Além disso, o valor de um campo de ponto flutuante pode parecer ter sido alterado quando não mudou, portanto, na ausência de um campo de data/hora, o Access pode determinar que o registro foi alterado quando não foi.
-
Crie apenas a estrutura da tabela, não atualize dados O Assistente de Upsizing aciona todos os dados para SQL Server por padrão. Se você selecionar a caixa de seleção Criar somente estrutura de tabela, não atualize nenhuma caixa de seleção de dados, somente a estrutura de dados será upsized.
Etapa 4: Escolher como fazer o upsize do aplicativo
Na próxima página do assistente, você pode selecionar uma das três maneiras diferentes de fazer o upsize do aplicativo de banco de dados do Access. Em Quais alterações de aplicativo você deseja fazer?, selecione uma das seguintes opções:
-
Criar um novo aplicativo cliente/servidor do Access Se você selecionar essa opção, o Assistente de Upsizing criará um novo projeto do Access. O Assistente de Upsizing solicita um nome, que é padrão para o nome do banco de dados atual do Access, adiciona um sufixo "CS" e armazena o projeto no mesmo local que o banco de dados do Access existente.
O Assistente de Upsizing cria o arquivo de projeto do Access e, em seguida, eleva todos os objetos de banco de dados do banco de dados do Access para o projeto do Access. Se você não salvar a senha e a ID do usuário, na primeira vez que abrir o projeto do Access, o Access exibirá a caixa de diálogo Propriedades do Link de Dados para que você possa se conectar a um banco de dados SQL Server de dados.
-
Vincular SQL Server tabelas ao aplicativo existente Se você selecionar essa opção, o Assistente de Upsizing modificará seu banco de dados do Access para que suas consultas, formulários, relatórios e páginas de acesso a dados usem os dados no novo banco de dados SQL Server em vez dos dados no banco de dados do Access. O Assistente de Upsizing renomeia as tabelas do Access que você upsize com o sufixo "_local". Por exemplo, se você for upsize uma tabela chamada Employees, a tabela será renomeada Employees_local no banco de dados do Access. Em seguida, o assistente de upsizing cria uma tabela SQL Server vinculada chamada Employees.
Observação: Após a conclusão da operação de upsizing, as tabelas que foram renomeadas com o sufixo "_local" não serão mais usadas. No entanto, é uma boa ideia manter as tabelas locais até que você verifique se o upsizing foi bem-sucedido. Em uma data posterior, você pode excluir as tabelas locais para reduzir o tamanho do banco de dados do Access. Certifique-se de fazer o back up do banco de dados antes de excluir quaisquer tabelas.
As consultas, formulários, relatórios e páginas de acesso a dados com base nas tabelas de Funcionários originais agora usarão a tabela funcionários SQL Server vinculados. Muitas das propriedades dos campos na tabela local original são herdadas pela nova tabela local,incluindo Descrição, Legenda,Formato,InputMaske DecimalPlaces.
-
Nenhuma alteração de aplicativo Selecione essa opção se você quiser apenas copiar seus dados para o banco de dados SQL Server e não fazer outras alterações no aplicativo de banco de dados do Access existente.
Salvar senha e ID do usuário Por padrão, o Assistente de Upsizing cria tabelas vinculadas no aplicativo existente ou cria um projeto do Access sem salvar o nome de usuário e a senha. Isso significa que os usuários são solicitados a solicitar um nome de usuário e uma senha sempre que fazem logoff em um banco de dados SQL Server usuário.
Se você selecionar Salvar senha e ID deusuário, os usuários poderão se conectar a um banco de dados SQL Server sem fazer logom. Se você selecionar Criar novo aplicativo cliente/servidordo Access, o projeto do Access armazenará a senha de nome de usuário na cadeia de caracteres de conexão OLE DB.
Observação: Essa opção será desabilitada para a opção Sem alterações de aplicativo se uma tabela SQL Server vinculada estiver configurada com uma tabela MSysConf para negar salvar senhas.
O relatório do Assistente de Upsizing
Quando você clica em Concluir, o Assistente de Upsizing cria um relatório que fornece uma descrição detalhada de todos os objetos criados e relata quaisquer erros encontrados durante o processo. O Assistente de Upsizing exibe o relatório na Visualização de Impressão e, em seguida, você pode imprimir ou salvar o relatório, por exemplo, como um arquivo XPS ou PDF. O relatório não é salvo como um objeto Access quando você fecha a janela Visualização de Impressão.
O relatório do Assistente de Upsizing contém informações sobre o seguinte:
-
Parâmetros de upsizing, incluindo quais atributos de tabela você escolheu para upsize e como você foi upsized.
-
Informações da tabela, incluindo uma comparação de valores do Access e SQL Server para nomes, tipos de dados, índices, regras de validação, padrões, gatilhos e se os carimbos de data/hora foram adicionados ou não.
-
Quaisquer erros encontrados, como banco de dados ou log de transações completo, permissões inadequadas, dispositivo ou banco de dados não criado, regra de tabela, padrão ou validação ignorada, relação não imposta, consulta ignorada (porque não pode ser traduzida para SQL Server sintaxe) e erros de conversão de controle e fonte de registro em formulários e relatórios.
Como os objetos de banco de dados são upsized
Os seguintes dados e objetos de banco de dados são upsized:
-
Tipos de dados e dados Todos os tipos de dados do banco de dados do Access são convertidos em seus equivalentes SQL Server. O assistente converte o texto do banco de dados do Access em Unicode adicionando o identificador de cadeia de caracteres Unicode a todos os valores de cadeia de caracteres e adicionando o prefixo Unicode n a todos os tipos de dados.
-
Consultas
-
Selecione consultas que não têm uma cláusula ORDER BY ou parâmetros são convertidos em exibições.
-
As consultas de ação são convertidas em consultas de ação de procedimento armazenadas. O Access adiciona SET NOCOUNT ON após o código de declaração do parâmetro para garantir que o procedimento armazenado seja executado.
-
Selecione consultas que referenciam apenas tabelas (também chamadas de consultas base) que usam parâmetros ou uma cláusula ORDER BY são convertidas em funções definidas pelo usuário. Se necessário, a cláusula TOP 100 PERCENT é adicionada a uma consulta que contém uma cláusula ORDER BY.
-
As consultas de parâmetro que usam parâmetros nomeados mantêm o nome de texto original usado no banco de dados do Access e são convertidas em procedimentos armazenados ou funções definidas pelo usuário em linha.
Observação: Talvez seja necessário converter manualmente consultas que não foram upsizes, como consultas de passagem SQL, consultas de definição de dados e consultas entre estações. Você também pode precisar fazer o upsize manualmente de consultas que foram aninhadas muito profundamente.
-
-
Formulários, relatórios e controles SQL instruções em Propriedades RecordSource, ControlsSource e RowSource para formulários, relatórios ou controles são mantidas no local e não são convertidas em procedimentos armazenados ou funções definidas pelo usuário.
-
Propriedades de inicialização O Assistente de Upsizing aciona as seguintes propriedades de inicialização:
StartUpShowDBWindow
StartUpShowStatusBar AllowShortcutMenus AllowFullMenus AllowBuiltInToolbars AllowToolbarChanges AllowSpecialKeys UseAppIconForFrmRpt AppIcon AppItle StartUpForm StartUpMenuBar StartupShortcutMenuBar -
Módulos e macros O Assistente de Upsizing não faz alterações em módulos ou macros. Talvez seja necessário modificar seu aplicativo para aproveitar ao máximo os recursos SQL Server do usuário. Para obter mais informações, consulte o artigo MSDN Otimizando Microsoft Office Aplicativos de Acesso Vinculados a SQL Server.