Exportera en Åtkomstinventering (AccessToSQL)
Om du har flera Access-databaser och du inte är säker på vilka som ska migreras till SQL Server kan du exportera en inventering av alla Access-databaser i ett projekt. Du kan sedan granska och köra frågor mot inventeringsmetadata för att avgöra vilka databaser och objekt i dessa databaser som ska migreras. Med den här inventeringen kan du snabbt hitta svar på frågor, till exempel följande lista:
- Vilka är de största databaserna?
- Vem äger de flesta databaserna?
- Vilka databaser innehåller samma tabeller?
- Vilka databaser har inte ändrats under de senaste sex månaderna?
- Vilka databaser innehåller privat information?
Frågeexempel som används för att besvara dessa frågor finns i slutet av den här artikeln.
Exporterade metadata
SSMA exporterar metadata om Åtkomstdatabaser, tabeller, kolumner, index, sekundärnycklar, frågor, rapporter, formulär, makron och moduler. Metadata om var och en av dessa objektkategorier exporteras till en separat tabell. Scheman för dessa tabeller finns i Access Inventory Schemas.
Exportera inventeringsdata
Om du vill exportera en Access-inventering måste du först öppna eller skapa ett SSMA-projekt och sedan lägga till den Access-databas som du vill analysera. När du har lagt till databaser i ett SSMA-projekt exporterar du metadata om dessa databaser till en angiven SQL Server-databas och ett schema. Vid behov skapar SSMA tabeller för att lagra metadata. SSMA lägger sedan till metadata om Access-databaserna i SQL Server-databasen.
Obs
En Access-databas kan delas upp i flera filer: en serverdelsdatabas som innehåller tabeller och klientdelsdatabaser som innehåller frågor, formulär, rapporter, makron, moduler och genvägar. Om du vill migrera en delad databas till SQL Server lägger du till klientdelsdatabasen i SSMA.
Följande instruktioner beskriver hur du skapar ett projekt, lägger till databaser i projektet, ansluter till SQL Server och sedan exporterar inventeringsdata.
Skapa ett projekt
Öppna SSMA för åtkomst.
På menyn Arkiv väljer du Nytt projekt.
Dialogrutan Nytt projekt visas.
I rutan Namn anger du ett namn för projektet.
I rutan Plats anger eller väljer du en mapp för projektet.
I kombinationsrutan Migrera till väljer du den målversion som du vill migrera till och väljer sedan OK.
Mer information om hur du skapar projekt finns i Skapa och hantera projekt.
Hitta och lägga till databaser
På menyn Arkiv väljer du Hitta databaser.
I guiden Hitta databaser anger du den enhet, filsökväg eller UNC-sökväg som du vill söka efter. Du kan också välja Bläddra för att välja enheten eller nätverksmappen.
Välj Lägg till för att lägga till platsen i listrutan.
Upprepa de föregående två stegen för att lägga till ytterligare sökplatser.
Du kan också lägga till sökvillkor för att förfina listan över databaser som returneras.
Viktig
Textrutan , för hela eller delar av filnamnet, stöder inte jokertecken.
Välj Genomsök.
Skanningssidan visas. Detta visar de databaser som har hittats och sökförloppet. Om du vill stoppa sökningen väljer du Stoppa.
På sidan Välj filer väljer du varje databas som du vill lägga till i projektet.
Du kan använda knapparna Välj alla och Rensa alla överst i listan för att markera eller rensa alla databaser. Du kan också hålla ned CTRL-tangenten för att markera flera rader eller hålla NED SKIFT-tangenten för att välja ett radintervall.
Välj Nästa.
På sidan Verifiera väljer du Slutför.
Mer information om hur du lägger till databaser i projekt finns i Lägga till och ta bort Åtkomstdatabasfiler.
Ansluta till SQL Server
På menyn Arkiv väljer du Anslut till SQL Server.
I dialogrutan anslutning anger eller väljer du namnet på instansen av SQL Server.
Om du ansluter till standardinstansen på den lokala datorn kan du ange localhost- eller en punkt (.).
Om du ansluter till standardinstansen på en annan dator anger du namnet på datorn.
Om du ansluter till en namngiven instans anger du datornamnet, ett omvänt snedstreck och instansnamnet. Till exempel: MyServer\MyInstance.
I rutan Database anger du namnet på måldatabasen för exporterade metadata.
Om din instans av SQL Server är konfigurerad för att acceptera anslutningar på en port som inte är standard anger du det portnummer som används för SQL Server-anslutningar i rutan Server-port. För standardinstansen av SQL Server är standardportnumret 1433. För namngivna instanser försöker SSMA hämta portnumret från SQL Server Browser Service.
I listrutan Authentication väljer du den autentiseringstyp som ska användas för anslutningen. Om du vill använda det aktuella Windows-kontot väljer du Windows-autentisering. Om du vill använda en SQL Server-inloggning väljer du SQL Server-autentiseringoch anger sedan ett användarnamn och lösenord.
Mer information om hur du ansluter till SQL Server finns i Ansluta till SQL Server (AccessToSQL).
Exportera inventeringsinformation
I Access Metadata Explorer, expandera Access-metabase.
Markera kryssrutan bredvid Databaser.
Om du vill utelämna enskilda databaser eller databasobjekt expanderar du mappen Databases och avmarkerar sedan kryssrutan bredvid databas- eller databasobjektet.
Högerklicka på Databaser och välj Exportera schema.
I dialogrutan Välj schema för export väljer du målschemat för exporterade metadata och väljer sedan OK.
Varje gång du exporterar metadata lägger SSMA till data i inventeringen. Befintliga data i lagret uppdateras eller tas inte bort.
Fråga efter exporterade metadata
När du har exporterat metadata om Access-databaser kan du köra frågor mot metadata. Följande instruktioner beskriver hur du använder frågeredigerarens fönster i SQL Server Management Studio för att köra frågor.
Frågemetadata
På menyn Start pekar du på Alla program, pekar på Microsoft SQL Server 2005 eller Microsoft SQL Server 2008 eller Microsoft SQL Server 2012och väljer sedan SQL Server Management Studio.
I dialogrutan Anslut till server kontrollerar du inställningarna och väljer sedan Anslut.
I verktygsfältet i Management Studio väljer du Ny fråga för att öppna Frågeredigeraren.
I fönstret Frågeredigeraren anger du en fråga. Några exempel visas i följande avsnitt.
Tryck på F5-tangenten för att köra frågan.
Frågeexempel
Innan du kör någon av följande frågor bör du köra en USE-database_name fråga för att se till att frågorna körs mot databasen som innehåller exporterade metadata. Om du till exempel exporterade metadata till en databas med namnet MyAccessMetadata lägger du till följande -instruktion i början av Transact-SQL-koden:
USE MyAccessMetadata;
GO
I följande exempel används alla schemat dbo. Om du exporterade metadata till ett annat schema måste du ändra schemat när du kör dessa frågor.
Vilka tabeller och kolumner finns i dessa databaser?
Följande fråga kopplar ihop tabellerna som innehåller kolumn-, tabell- och databasmetadata och returnerar sedan namnen på alla databaser, tabeller och kolumner, sorterade efter kolumnnamn:
SELECT DatabaseName,
TableName,
ColumnName
FROM dbo.SSMA_Access_InventoryColumns C
INNER JOIN dbo.SSMA_Access_InventoryTables T
ON C.TableId = T.TableId
INNER JOIN dbo.SSMA_Access_InventoryDatabases D
ON T.DatabaseId = D.DatabaseId
ORDER BY ColumnName;
Vilka är de största databaserna?
Följande fråga returnerar databasnamnet, filstorleken och antalet tabeller i varje Access-databas, sorterade efter filstorlek:
SELECT DatabaseName,
FileSize,
TablesCount
FROM dbo.SSMA_Access_InventoryDatabases
ORDER BY FileSize DESC;
Vem äger de flesta databaserna?
Följande fråga returnerar databasnamnet och ägaren för varje Access-databas, sorterade efter ägare.
SELECT DatabaseName, FileOwner
FROM dbo.SSMA_Access_InventoryDatabases
ORDER BY FileOwner;
Vilka databaser innehåller samma tabeller?
Följande fråga använder en underfråga för att hitta alla tabellnamn som visas mer än en gång i listan över tabeller och använder sedan den här listan med tabeller för att hämta databasnamnet. Resultatet returneras som databasnamn och sedan tabellnamnet och sorteras efter tabellnamn.
SELECT DatabaseName,
TableName
FROM dbo.SSMA_Access_InventoryTables T
INNER JOIN dbo.SSMA_Access_InventoryDatabases 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;
Vilka databaser har inte ändrats under de senaste sex månaderna?
Följande fråga hämtar aktuellt datum, hämtar månadsvärdet för sex månader sedan och returnerar sedan en lista över databaser med ett ändrat datum för mer än sex månader sedan.
SELECT DatabaseName,
DateModified
FROM dbo.SSMA_Access_InventoryDatabases
WHERE DATEDIFF(MONTH, DateModified, GETDATE()) > 6
ORDER BY DateModified;
Vilka databaser innehåller privat information?
Dina Access-databaser kan innehålla känslig eller personlig information. Du kanske vill flytta dessa databaser till SQL Server för att dra nytta av dess säkerhetsfunktioner. Om du vet att kolumner som innehåller känsliga data har ett specifikt namn eller innehåller specifika tecken kan du använda en fråga för att hitta alla kolumner som innehåller den informationen. Du kan till exempel hitta alla kolumner som innehåller strängen "lön". Frågan returnerar sedan databasnamnet, tabellnamnet och kolumnnamnet.
SELECT DatabaseName,
TableName,
ColumnName
FROM dbo.SSMA_Access_InventoryColumns C
INNER JOIN dbo.SSMA_Access_InventoryTables T
ON C.TableId = T.TableId
INNER JOIN dbo.SSMA_Access_InventoryDatabases D
ON T.DatabaseId = D.DatabaseId
WHERE ColumnName LIKE '%salary%';
Om du inte känner till kolumnnamnet kan du skriva en fråga för att returnera alla kolumner. Det gör du genom att ta bort WHERE-satsen från föregående fråga.