Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Als u meerdere Access-databases hebt en u niet zeker weet welke u wilt migreren naar SQL Server, exporteert u een inventaris van alle Access-databases in een project. U kunt de metagegevens van de inventaris controleren en er query's op uitvoeren om te bepalen welke databases en objecten in die databases moeten worden gemigreerd. Met deze inventaris kunt u snel antwoorden vinden op vragen zoals de volgende lijst:
- Wat zijn de grootste databases?
- Wie is de eigenaar van de meeste databases?
- Welke databases bevatten dezelfde tabellen?
- Welke databases zijn de afgelopen zes maanden niet gewijzigd?
- Welke databases bevatten persoonlijke gegevens?
Queryvoorbeelden die deze vragen beantwoorden, worden aan het einde van dit artikel gegeven.
Geëxporteerde metagegevens
SQL Server Migration Assistant (SSMA) exporteert metagegevens over Access-databases, tabellen, kolommen, indexen, refererende sleutels, query's, rapporten, formulieren, macro's en modules. SSMA exporteert metagegevens over elk van deze categorieën items naar een afzonderlijke tabel. Zie Access-inventarisschema's voor schema's van deze tabellen.
Inventarisgegevens exporteren
Als u een Access-inventaris wilt exporteren, opent of maakt u eerst een SSMA-project. Voeg vervolgens de Access-database toe die u wilt analyseren. Nadat u databases hebt toegevoegd aan een SSMA-project, exporteert u metagegevens over deze databases naar een opgegeven SQL Server-database en -schema. Indien nodig maakt SSMA tabellen om de metagegevens op te slaan. Vervolgens voegt SSMA de metagegevens over de Access-databases toe aan de SQL Server-database.
Notitie
Een Access-database kan worden gesplitst in meerdere bestanden: een back-enddatabase die tabellen en front-enddatabases bevat die query's, formulieren, rapporten, macro's, modules en snelkoppelingen bevatten. Als u een gesplitste database wilt migreren naar SQL Server, voegt u de front-enddatabase toe aan SSMA.
In de volgende instructies wordt beschreven hoe u een project maakt, databases toevoegt aan het project, verbinding maakt met SQL Server en vervolgens inventarisgegevens exporteert.
Een project maken
Open SSMA voor Access.
Selecteer in het menu Bestand de optie Nieuw project.
Het dialoogvenster Nieuw project wordt weergegeven.
Voer in het vak Naam een naam in voor uw project.
Voer in het vak Locatie een map voor het project in of selecteer deze.
Selecteer in het Migreren naar selectievak de doelversie waarnaar u wilt migreren, en selecteer vervolgens OK.
Zie Projecten maken en beheren voor meer informatie over het maken van projecten.
Databases zoeken en toevoegen
Selecteer in het menu BestandDatabases zoeken.
Voer in de wizard 'Databases zoeken' het station, UNC-pad of bestandspad in dat u wilt doorzoeken. U kunt ook bladeren selecteren om de schijf of netwerkmap te selecteren.
Selecteer toevoegen om de locatie toe te voegen aan de keuzelijst.
Herhaal de vorige twee stappen om meer zoeklocaties toe te voegen.
Voeg desgewenst zoekcriteria toe om de lijst met geretourneerde databases te verfijnen.
Belangrijk
Het tekstvak Alle of een deel van het tekstvak bestandsnaam biedt geen ondersteuning voor jokertekens.
Selecteer Scan.
De pagina Scannen wordt weergegeven. Op deze pagina ziet u de databases die het hulpprogramma heeft gevonden en de voortgang van de zoekopdracht. Als u de zoekopdracht wilt stoppen, selecteert u stoppen.
Op de pagina Bestanden selecteren, kiest u elke database die u aan het project wilt toevoegen.
U kunt de knoppen Alles selecteren en Alles wissen bovenaan de lijst gebruiken om alle databases te selecteren of te wissen. U kunt de Ctrl-toets ook ingedrukt houden om meerdere rijen te selecteren of de Shift-toets ingedrukt houden om een bereik met rijen te selecteren.
Selecteer Volgende.
Selecteer Voltooien op de pagina Verifiëren.
Zie Access-databasebestanden toevoegen en verwijderen voor meer informatie over het toevoegen van databases aan projecten.
Verbinding maken met SQL Server
Selecteer in het menu BestandVerbinding maken met SQL Server.
Typ of selecteer in het dialoogvenster Verbinding de naam van het exemplaar van SQL Server.
Wanneer u verbinding maakt met het standaardexemplaar op de lokale computer, voert u
localhostof een punt (.) in.Als u verbinding maakt met de standaardinstantie van een andere computer, voert u de naam van de computer in.
Als u verbinding maakt met een benoemd exemplaar, voert u de computernaam, een backslash en de naam van het exemplaar in. Voorbeeld:
MyServer\MyInstance.
Voer in het vak Database de naam in van de doeldatabase voor geëxporteerde metagegevens.
Als uw exemplaar van SQL Server is geconfigureerd voor het accepteren van verbindingen op een niet-standaardpoort, voert u het poortnummer in dat wordt gebruikt voor SQL Server-verbindingen in het vak Serverpoort . Voor het standaardexemplaren van SQL Server is het standaardpoortnummer 1433. Voor benoemde instanties probeert SSMA het poortnummer te verkrijgen van de SQL Server-browserservice.
Selecteer in de vervolgkeuzelijst Authentication het verificatietype dat u voor de verbinding wilt gebruiken. Als u het huidige Windows-account wilt gebruiken, selecteert u Windows-verificatie. Als u een SQL Server-aanmelding wilt gebruiken, selecteert u SQL Server-verificatieen geeft u vervolgens een gebruikersnaam en wachtwoord op.
Zie Verbinding maken met SQL Server voor meer informatie over het maken van verbinding met SQL Server.
Inventarisgegevens exporteren
Vouw in Access Metadata Explorer Access-metabaseuit.
Schakel het selectievakje naast Databasesin.
Als u afzonderlijke databases of databaseobjecten wilt weglaten, vouwt u de map Databases uit en schakelt u het selectievakje naast het database- of databaseobject uit.
Klik met de rechtermuisknop op Databases en selecteer Exporteren schema.
Selecteer in het dialoogvenster Schema voor exporteren het doelschema voor de geëxporteerde metagegevens en selecteer vervolgens OK.
Telkens wanneer u metagegevens exporteert, voegt SSMA de gegevens toe aan de inventaris. Bestaande gegevens in de inventaris worden niet bijgewerkt of verwijderd.
Query uitvoeren op de geëxporteerde metagegevens
Nadat u metagegevens over Access-databases hebt geëxporteerd, kunt u een query uitvoeren op de metagegevens. In de volgende instructies wordt beschreven hoe u het venster Queryeditor in SQL Server Management Studio gebruikt om query's uit te voeren.
Opvragen van metadata
Ga in het menu Start naar SQL Server Management Studio.
Controleer in het dialoogvenster Verbinding maken met server de instellingen en selecteer Verbinding maken.
Selecteer op de werkbalk van Management Studio Nieuwe query om Query-editor te openen.
Voer in het venster Queryeditor een query in. Enkele voorbeelden worden weergegeven in de volgende sectie.
Druk op F5 om de query uit te voeren.
Queryvoorbeelden
Voordat u een van de volgende query's uitvoert, voert u een USE database_name query uit om ervoor te zorgen dat de query's worden uitgevoerd op de database die de geëxporteerde metagegevens bevat. Als u bijvoorbeeld metagegevens hebt geëxporteerd naar een database met de naam MyAccessMetadata, voegt u de volgende instructie toe aan het begin van de Transact-SQL-code:
USE MyAccessMetadata;
GO
In de volgende voorbeelden wordt het dbo schema gebruikt. Als u de metagegevens naar een ander schema hebt geëxporteerd, moet u het schema wijzigen wanneer u deze query's uitvoert.
Welke tabellen en kolommen bevinden zich in deze databases?
Met de volgende query worden de tabellen samengevoegd die kolom-, tabel- en databasemetagegevens bevatten en worden vervolgens de namen van alle databases, tabellen en kolommen geretourneerd, gesorteerd op kolomnaam:
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;
Wat zijn de grootste databases?
De volgende query retourneert de databasenaam, de bestandsgrootte en het aantal tabellen in elke Access-database, gesorteerd op bestandsgrootte:
SELECT DatabaseName,
FileSize,
TablesCount
FROM dbo.SSMA_Access_InventoryDatabases
ORDER BY FileSize DESC;
Wie is de eigenaar van de meeste databases?
De volgende query retourneert de databasenaam en de eigenaar van elke Access-database, gesorteerd op eigenaar.
SELECT DatabaseName,
FileOwner
FROM dbo.SSMA_Access_InventoryDatabases
ORDER BY FileOwner;
Welke databases bevatten dezelfde tabellen?
De volgende query maakt gebruik van een subquery om alle tabelnamen te vinden die meerdere keren in de lijst met tabellen worden weergegeven. Vervolgens wordt deze lijst met tabellen gebruikt om de databasenaam op te halen. De resultaten worden geretourneerd als de databasenaam en vervolgens de tabelnaam en worden gesorteerd op tabelnaam.
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;
Welke databases zijn de afgelopen zes maanden niet gewijzigd?
De volgende query haalt de huidige datum op, haalt de maandwaarde op voor zes maanden geleden en retourneert vervolgens een lijst met databases met een gewijzigde datum van meer dan zes maanden geleden.
SELECT DatabaseName,
DateModified
FROM dbo.SSMA_Access_InventoryDatabases
WHERE DATEDIFF(MONTH, DateModified, GETDATE()) > 6
ORDER BY DateModified;
Welke databases bevatten persoonlijke gegevens?
Uw Access-databases kunnen gevoelige of persoonlijke gegevens bevatten. U kunt deze databases verplaatsen naar SQL Server om te profiteren van de beveiligingsfuncties. Als u weet dat kolommen met gevoelige gegevens een specifieke naam hebben of specifieke tekens bevatten, gebruikt u een query om alle kolommen te zoeken die die informatie bevatten. U kunt bijvoorbeeld alle kolommen vinden die de tekenreeks salarybevatten. De query retourneert vervolgens de databasenaam, tabelnaam en kolomnaam.
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%';
Als u de kolomnaam niet weet, schrijft u een query om alle kolommen te retourneren door de WHERE component uit deze query te verwijderen.