Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Se tiver várias bases de dados Access e não tiver a certeza de quais migrar para o SQL Server, exporte um inventário de todas as bases de dados Access de um projeto. Pode rever e consultar os metadados do inventário para determinar que bases de dados e objetos dentro dessas bases de dados deve migrar. Este inventário ajuda-o a encontrar rapidamente respostas para perguntas como a seguinte lista:
- Quais são as maiores bases de dados?
- Quem detém a maioria das bases de dados?
- Que bases de dados contêm as mesmas tabelas?
- Que bases de dados não foram modificadas nos últimos seis meses?
- Que bases de dados contêm informações privadas?
Exemplos de consultas que respondem a estas perguntas são fornecidos no final deste artigo.
Metadados exportados
O Assistente de Migração do SQL Server (SSMA) exporta metadados sobre bancos de dados, tabelas, colunas, índices, chaves estrangeiras, consultas, relatórios, formulários, macros e módulos do Access. O SSMA exporta metadados sobre cada uma destas categorias de itens para uma tabela separada. Para esquemas destas tabelas, veja Esquemas de inventário de acesso.
Dados de inventário para exportação
Para exportar um inventário do Access, primeiro abra ou crie um projeto SSMA. Depois adiciona a base de dados Access que queres analisar. Depois de adicionar bancos de dados a um projeto SSMA, exporte metadados sobre esses bancos de dados para um banco de dados e esquema especificados do SQL Server. Se necessário, o SSMA cria tabelas para armazenar os metadados. Em seguida, o SSMA adiciona os metadados sobre os bancos de dados do Access ao banco de dados do SQL Server.
Observação
Um banco de dados do Access pode ser dividido em vários arquivos: um banco de dados back-end que contém tabelas e bancos de dados front-end que contêm consultas, formulários, relatórios, macros, módulos e atalhos. Se você quiser migrar um banco de dados dividido para o SQL Server, adicione o banco de dados front-end ao SSMA.
As instruções a seguir descrevem como criar um projeto, adicionar bancos de dados ao projeto, conectar-se ao SQL Server e exportar dados de inventário.
Criar um projeto
Abra o SSMA para acesso.
No menu Arquivo, selecione Novo Projeto.
A caixa de diálogo New Project é exibida.
Na caixa Nome, insira um nome para seu projeto.
Na caixa Localização, insira ou selecione uma pasta para o projeto.
Na caixa de combinação Migrar para, selecione a versão de destino para a qual pretende migrar e, em seguida, selecione OK.
Para obter mais informações sobre como criar projetos, consulte Criar e gerenciar projetos.
Localizar e adicionar bancos de dados
No menu Arquivo, selecione Procurar Bases de Dados.
No Assistente para Localizar Bancos de Dados, insira a unidade, o caminho do arquivo ou o caminho UNC que você deseja pesquisar. Como alternativa, selecione Procurar para selecionar a unidade ou pasta de rede.
Selecione Adicionar para adicionar o local à caixa de listagem.
Repita as duas etapas anteriores para adicionar mais locais de pesquisa.
Opcionalmente, adicione critérios de pesquisa para refinar a lista de bancos de dados retornados.
Importante
A caixa de texto Todo ou parte do nome do ficheiro não suporta caracteres curinga.
Selecione Verificar.
A página Digitalizar aparece. Esta página mostra as bases de dados que a ferramenta encontrou e o progresso da pesquisa. Para parar a pesquisa, selecione Parar.
Na página Selecionar Ficheiros , selecione cada base de dados que pretende adicionar ao projeto.
Você pode usar os botões Selecionar tudo e Limpar tudo na parte superior da lista para selecionar ou limpar todos os bancos de dados. Também podes manter a tecla Ctrl pressionada para selecionar várias linhas, ou manter a tecla Shift pressionada para selecionar um intervalo de linhas.
Selecione Avançar.
Na página Verificar , selecione Terminar.
Para mais informações sobre a adição de bases de dados a projetos, consulte Adicionar e remover ficheiros de base de dados de acesso.
Conectar-se ao SQL Server
No menu Arquivo, selecione Ligar-se ao SQL Server.
Na caixa de diálogo de conexão, digite ou selecione o nome da instância do SQL Server.
Se se ligar à instância padrão no computador local, introduza
localhostou um ponto (.).Se te ligares à instância padrão noutro computador, insere o nome do computador.
Se se ligar a uma instância nomeada, introduza o nome do computador, uma barra diagonal e o nome da instância. Por exemplo:
MyServer\MyInstance.
Na caixa Banco de Dados, digite o nome do banco de dados de destino para metadados exportados.
Se sua instância do SQL Server estiver configurada para aceitar conexões em uma porta não padrão, insira o número da porta usada para conexões do SQL Server na caixa Porta do servidor . Para a instância padrão do SQL Server, o número de porta padrão é 1433. Para instâncias nomeadas, o SSMA tenta obter o número da porta do Serviço de Navegador do SQL Server.
Na lista suspensa Autenticação, selecione o tipo de autenticação a ser usado para a conexão. Para usar a conta atual do Windows, selecione Autenticação do Windows. Para usar um logon do SQL Server, selecione de Autenticação do SQL Server e forneça um nome de usuário e uma senha.
Para mais informações sobre como se ligar ao SQL Server, veja Ligar ao SQL Server.
Informações de inventário de exportação
No explorador de Metadados do Access, expandir Access-metabase.
Marque a caixa de seleção ao lado de Bancos de dados.
Para omitir bancos de dados individuais ou objetos de banco de dados, expanda a pasta Bancos de Dados e desmarque a caixa de seleção ao lado do banco de dados ou objeto de banco de dados.
Clique com o botão direito do mouse Bancos de Dados e selecione Exportar Esquema.
Na caixa de diálogo Selecionar Esquema para Exportar, selecione o esquema de destino para os metadados exportados e selecione OK.
Sempre que você exporta metadados, o SSMA acrescenta os dados ao inventário. Os dados existentes no inventário não são atualizados ou excluídos.
Consultar os metadados exportados
Depois de exportar metadados sobre bancos de dados do Access, você pode consultar os metadados. As instruções seguintes descrevem como usar a janela do Editor de Consultas no SQL Server Management Studio para executar consultas.
Metadados de consulta
Vai ao SQL Server Management Studio a partir do menu Iniciar .
Na caixa de diálogo Conectar ao Servidor, verifique as configurações e selecione Conectar.
Na barra de ferramentas do Management Studio, selecione Nova Consulta para abrir o Editor de Consultas.
Na janela Editor de Consultas, insira uma consulta. Alguns exemplos são mostrados na seção a seguir.
Pressiona a tecla F5 para executar a consulta.
Exemplos de consulta
Antes de executar qualquer uma das consultas seguintes, faça uma USE database_name consulta para garantir que as consultas correm contra a base de dados que contém os metadados exportados. Por exemplo, se exportasse metadados para uma base de dados chamada MyAccessMetadata, adicionaria a seguinte instrução no início do código Transact-SQL:
USE MyAccessMetadata;
GO
Todos os exemplos a seguir usam o dbo esquema. Se você exportou os metadados para outro esquema, certifique-se de alterar o esquema ao executar essas consultas.
Que tabelas e colunas estão nessas bases de dados?
A consulta a seguir une as tabelas que contêm metadados de coluna, tabela e banco de dados e, em seguida, retorna os nomes de todos os bancos de dados, tabelas e colunas, classificados por nome de coluna:
SELECT DatabaseName,
TableName,
ColumnName
FROM dbo.SSMA_Access_InventoryColumns AS C
INNER JOIN dbo.SSMA_Access_InventoryTables AS T
ON C.TableId = T.TableId
INNER JOIN dbo.SSMA_Access_InventoryDatabases AS D
ON T.DatabaseId = D.DatabaseId
ORDER BY ColumnName;
Quais são as maiores bases de dados?
A consulta a seguir retorna o nome do banco de dados, o tamanho do arquivo e o número de tabelas em cada banco de dados do Access, classificados por tamanho de arquivo:
SELECT DatabaseName,
FileSize,
TablesCount
FROM dbo.SSMA_Access_InventoryDatabases
ORDER BY FileSize DESC;
Quem detém a maioria das bases de dados?
A consulta a seguir retorna o nome do banco de dados e o proprietário de cada banco de dados do Access, classificados por proprietário.
SELECT DatabaseName,
FileOwner
FROM dbo.SSMA_Access_InventoryDatabases
ORDER BY FileOwner;
Que bases de dados contêm as mesmas tabelas?
A consulta seguinte utiliza uma subconsulta para encontrar todos os nomes de tabelas que aparecem mais do que uma vez na lista de tabelas. Depois, utiliza esta lista de tabelas para obter o nome da base de dados. Os resultados são retornados como o nome do banco de dados e, em seguida, o nome da tabela e são classificados por nome da tabela.
SELECT DatabaseName,
TableName
FROM dbo.SSMA_Access_InventoryTables AS T
INNER JOIN dbo.SSMA_Access_InventoryDatabases AS D
ON D.DatabaseId = T.DatabaseId
WHERE TableName IN (SELECT TableName
FROM dbo.SSMA_Access_InventoryTables
GROUP BY TableName
HAVING COUNT(*) > 1)
ORDER BY TableName;
Que bases de dados não foram modificadas nos últimos seis meses?
A consulta a seguir obtém a data atual, obtém o valor do mês de seis meses atrás e retorna uma lista de bancos de dados com uma data de modificação superior a seis meses atrás.
SELECT DatabaseName,
DateModified
FROM dbo.SSMA_Access_InventoryDatabases
WHERE DATEDIFF(MONTH, DateModified, GETDATE()) > 6
ORDER BY DateModified;
Que bases de dados contêm informações privadas?
Seus bancos de dados do Access podem conter informações confidenciais ou pessoais. Talvez você queira mover esses bancos de dados para o SQL Server para aproveitar seus recursos de segurança. Se souber que colunas contendo dados sensíveis têm um nome específico, ou contêm caracteres específicos, use uma consulta para encontrar todas as colunas que contenham essa informação. Por exemplo, você pode encontrar todas as colunas que incluem a cadeia de caracteres salary. Em seguida, a consulta retorna o nome do banco de dados, o nome da tabela e o nome da coluna.
SELECT DatabaseName,
TableName,
ColumnName
FROM dbo.SSMA_Access_InventoryColumns AS C
INNER JOIN dbo.SSMA_Access_InventoryTables AS T
ON C.TableId = T.TableId
INNER JOIN dbo.SSMA_Access_InventoryDatabases AS D
ON T.DatabaseId = D.DatabaseId
WHERE ColumnName LIKE '%salary%';
Se não souber o nome da coluna, escreva uma consulta para devolver todas as colunas removendo a WHERE cláusula dessa consulta.