Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Se você tiver vários bancos de dados do Access e não tiver certeza de quais migrar para o SQL Server, exporte um inventário de todos os bancos de dados do Access em um projeto. Você pode examinar e consultar os metadados de inventário para determinar quais bancos de dados e objetos dentro desses bancos de dados serão migrados. Esse inventário ajuda você a encontrar rapidamente respostas para perguntas como a seguinte lista:
- Quais são os maiores bancos de dados?
- Quem é o proprietário da maioria dos bancos de dados?
- Quais bancos de dados contêm as mesmas tabelas?
- Quais bancos de dados não foram modificados nos últimos seis meses?
- Quais bancos de dados contêm informações privadas?
Exemplos de consulta que respondem a essas perguntas são fornecidos no final deste artigo.
Metadados exportados
O SSMA (Assistente de Migração do SQL Server) 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 dessas categorias de itens para uma tabela separada. Para esquemas dessas tabelas, consulte esquemas de inventário do Access.
Exportar dados de inventário
Para exportar um inventário do Access, primeiro abra ou crie um projeto SSMA. Em seguida, adicione o banco de dados do Access que você deseja analisar. Depois de adicionar bancos de dados a um projeto SSMA, você exporta metadados sobre esses bancos de dados para um banco de dados e um 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 Access.
No menu Arquivo, selecione Novo Projeto.
A caixa de diálogo Novo Projeto é exibida.
Na caixa Nome , insira um nome para o 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 você deseja migrar e 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 Localizar Bancos 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 a 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 arquivo não suporta caracteres curinga.
Selecione Verificar.
A página Verificação é exibida. Esta página mostra os bancos de dados que a ferramenta encontrou e o progresso da pesquisa. Para interromper a pesquisa, selecione Parar.
Na página Selecionar Arquivos , selecione cada banco de dados que você deseja 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. Você também pode manter a tecla Ctrl pressionada para selecionar várias linhas ou manter a tecla Shift pressionada para selecionar um intervalo de linhas.
Selecione Próximo.
Na página Verificar , selecione Concluir.
Para obter mais informações sobre como adicionar bancos de dados a projetos, consulte Adicionar e remover arquivos de banco de dados do Access.
Conecte-se ao SQL Server
No menu Arquivo , selecione Conectar-se ao SQL Server.
Na caixa de diálogo de conexão, insira ou selecione o nome da instância do SQL Server.
Se você se conectar à instância padrão no computador local, insira
localhostou um ponto (.).Se você se conectar à instância padrão em outro computador, insira o nome do computador.
Ao se conectar a uma instância nomeada, insira o nome do computador, uma barra invertida e o nome da instância. Por exemplo:
MyServer\MyInstance.
Na caixa Banco de Dados , insira o nome do banco de dados de destino para metadados exportados.
Se a instância do SQL Server estiver configurada para aceitar conexões em uma porta não padrão, insira o número da porta usado para conexões do SQL Server na caixa de porta do Servidor . Para a instância padrão do SQL Server, o número da 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 de opções 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 Autenticação do SQL Server e forneça um nome de usuário e senha.
Para obter mais informações sobre como se conectar ao SQL Server, consulte Conectar-se ao SQL Server.
Exportar informações de inventário
No Gerenciador de Metadados do Access, expanda a metabase do Access.
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 em Bancos de Dados e selecione Exportar Esquema.
Na caixa de diálogo Selecionar Esquema para Exportação , selecione o esquema de destino para os metadados exportados e selecione OK.
Cada vez 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 a seguir descrevem como usar a janela Editor de Consultas no SQL Server Management Studio para executar consultas.
Consultar metadados
Vá para o SQL Server Management Studio no 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.
Pressione a tecla F5 para executar a consulta.
Exemplos de consulta
Antes de executar qualquer uma das consultas a seguir, execute uma USE database_name consulta para verificar se as consultas são executadas no banco de dados que contém os metadados exportados. Por exemplo, se você exportou metadados para um banco de dados nomeado MyAccessMetadata, adicionará 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, altere o esquema ao executar essas consultas.
Quais tabelas e colunas estão nesses bancos de dados?
A consulta a seguir une as tabelas que contêm metadados de coluna, tabela e banco de dados e retorna os nomes de todos os bancos de dados, tabelas e colunas, classificados pelo 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
ORDER BY ColumnName;
Quais são os maiores bancos 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 pelo tamanho do arquivo:
SELECT DatabaseName,
FileSize,
TablesCount
FROM dbo.SSMA_Access_InventoryDatabases
ORDER BY FileSize DESC;
Quem é o proprietário da maioria dos bancos 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 pelo proprietário.
SELECT DatabaseName,
FileOwner
FROM dbo.SSMA_Access_InventoryDatabases
ORDER BY FileOwner;
Quais bancos de dados contêm as mesmas tabelas?
A consulta a seguir usa uma subconsulta para localizar todos os nomes de tabela que aparecem mais de uma vez na lista de tabelas. Em seguida, ele usa essa lista de tabelas para obter o nome do banco 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 pelo 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;
Quais bancos de dados não foram modificados 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 modificada maior que seis meses atrás.
SELECT DatabaseName,
DateModified
FROM dbo.SSMA_Access_InventoryDatabases
WHERE DATEDIFF(MONTH, DateModified, GETDATE()) > 6
ORDER BY DateModified;
Quais bancos 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 você souber que as colunas que contêm dados confidenciais têm um nome específico ou contêm caracteres específicos, use uma consulta para localizar todas as colunas que contêm essas informações. 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 você não souber o nome da coluna, escreva uma consulta para retornar todas as colunas removendo a WHERE cláusula dessa consulta.