Med tiden växer, blir de flesta databasprogram mer komplexa och behöver stöd för fler användare. Någon gång under Microsoft Office Access-programmets livslängd kanske du vill överväga att ändra storleken till en Microsoft-SQL Server-databas för att optimera prestanda, skalbarhet, tillgänglighet, säkerhet, tillförlitlighet och återställning.
Artikelinnehåll
Om att ändra storlek på en Microsoft Office Access-databas
Storleksändring är processen med att migrera vissa eller alla databasobjekt från en Access-databas till en ny eller befintlig SQL Server databas eller ett nytt Access-projekt (.adp).
Fördelar med att storleksförändra en databas till SQL Server
-
Hög prestanda och skalbarhet I många situationer ger SQL Server bättre prestanda än en Access-databas. SQL Server ger också stöd för mycket stora databaser med terabytestorlek, som är mycket större än den aktuella gränsen för en Access-databas på två GIGABYTE. Slutligen fungerar SQL Server mycket effektivt genom att bearbeta frågor parallellt (med hjälp av flera interna trådar inom en enda process för att hantera användarförfrågningar) och minimera ytterligare minneskrav när fler användare läggs till.
-
Ökad tillgänglighet SQL Server kan du göra en dynamisk säkerhetskopiering, antingen stegvis eller fullständig, av databasen medan den används. Med andra ord behöver du inte tvinga användarna att avsluta sitt arbete och stänga databasen när du vill säkerhetskopiera databasen.
-
Förbättrad säkerhet Med hjälp av en betrodd anslutning kan SQL Server integrera med Windows-systemsäkerhet för att ge en enda integrerad åtkomst till nätverket och databasen, med det bästa av båda säkerhetssystemen. Det gör det mycket enklare att administrera komplexa säkerhetsscheman.
-
Omedelbar återställning I händelse av systemfel (t.ex. en operativsystemkrasch eller strömavbrott) har SQL Server en automatisk återställningsmekanism som återställer en databas till det sista konsekvenstillståndet på några minuter, utan att databasadministratören behöver ingripa.
-
Serverbaserad bearbetning Om du använder SQL Server i en klient-/serverkonfiguration minskas nätverkstrafiken genom att databasfrågor bearbetas på servern innan resultat skickas till klienten. Att servern utför bearbetningen är vanligtvis mycket effektivare, särskilt när du arbetar med stora datamängder.
Programmet kan också använda användardefinierade funktioner, lagrade procedurer och utlösare för att centralisera och dela programlogik, affärsregler och principer, komplexa frågor, dataverifiering och referensintegritetskod på servern i stället för på klienten.
Olika sätt att öka storleken
Storleksguiden flyttar databasobjekt och data som de innehåller från en Access-databas till en ny eller befintlig SQL Server databas.
Det finns tre sätt att använda Storleksguiden:
-
Ändra storlek på alla databasobjekt från en Access-databas till ett Access-projekt så att du kan skapa ett klient-/serverprogram. Den här metoden kräver ytterligare programändringar och ändringar av kod och komplexa frågor.
-
Ändra endast storlek på data eller datadefinitioner från en Access-databas till en SQL Server databas.
-
Skapa en Access-databas front-end till en SQL Server databas backend så att du kan skapa en front end/back end-program. Den här metoden kräver väldigt lite programändringar eftersom koden fortfarande använder Access-databasmotorn (ACE).
Innan du ändrar storlek på en Access-databas
Innan du ändrar storlek på Access-databasen till en SQL Server databas eller Ett Access-projekt bör du överväga att göra följande:
-
Säkerhetskopiera din databas Även om Storleksguiden inte tar bort några data eller databasobjekt från en Access-databas är det en bra idé att skapa en säkerhetskopia av Access-databasen innan du ändrar storlek på den.
-
Kontrollera att du har tillräckligt med diskutrymme Du måste ha tillräckligt med diskutrymme på enheten som kommer att innehålla den uppdeliga databasen. Storleksguiden fungerar bäst när det finns gott om ledigt diskutrymme.
-
Skapa unika index En länkad tabell måste ha ett unikt index för att kunna uppdateras i Access. Storleksguiden kan öka storleken på ett befintligt unikt index, men det går inte att skapa ett där det inte finns något. Om du vill kunna uppdatera tabellerna måste du lägga till ett unikt index för varje Access-tabell innan du ändrar storlek.
-
Tilldela dig själv lämpliga behörigheter för SQL Server-databasen
-
Om du vill ändra storlek på en befintlig databas måste du ha behörigheten SKAPA TABELL och SKAPA SOM STANDARD.
-
Om du vill skapa en ny databas behöver du behörigheten SKAPA DATABAS och SELECT-behörigheter för systemtabellerna i huvuddatabasen.
-
Storleksguiden för Access 2007 är optimerad för microsoft SQL Server 2000 och SQL Server 2005.
Använda Storleksguiden
-
Klicka på SQL Server i gruppen Flytta data på fliken Databasverktyg.
Storleksguiden startas.
Steg 1: Välj att ändra storlek till en befintlig databas eller en ny databas
På den första sidan i guiden anger du om du vill ändra storlek på Access-databasen till en befintlig SQL Server databas eller skapa en ny SQL Server databas.
-
Använda befintlig databas Om du väljer det här alternativet och sedan klickar på Nästa visas dialogrutan Välj datakälla så att du kan skapa en ODBC-anslutning till den befintliga SQL Server databasen.
Om ODBC-datakällor
En datakälla är en datakälla i kombination med den anslutningsinformation som behövs för att komma åt dessa data. Exempel på datakällor är Access, SQL Server, Oracle RDBMS, ett kalkylblad och en textfil. Exempel på anslutningsinformation är serverplats, databasnamn, inloggnings-ID, lösenord och olika ODBC-drivrutinsalternativ som beskriver hur du ansluter till datakällan.
I ODBC-arkitekturen ansluter ett program (till exempel Access eller ett Microsoft Visual Basic-program) till ODBC Driver Manager, som i sin tur använder en specifik ODBC-drivrutin (till exempel Microsoft SQL ODBC-drivrutin) för att ansluta till en datakälla (i det här fallet en SQL Server databas). I Access använder du ODBC-datakällor när du ansluter till datakällor som är externa och som inte har inbyggda drivrutiner.
Gör så här när du vill ansluta till de här datakällorna:
-
Installera lämplig ODBC-drivrutin på datorn där datakällan finns.
-
Ange ett namn på datakällan (DSN) genom att använda administratören för OBDC-datakällor för att lagra anslutningsinformationen i Microsoft Windows-registret eller en DSN-fil, eller en anslutningssträng i Visual Basic-koden för att skicka vidare anslutningsinformationen direkt till ODBC-drivrutinshanteraren.
Maskindatakällor
Maskindatakällor lagrar anslutningsinformation i Windows-registret på en viss dator med ett användardefinierat namn. Du kan använda maskindatakällor endast på den dator där de är definierade. Det finns två typer av maskindatakällor – användare och system. Användardatakällor kan endast användas av den aktuella användaren och är endast synliga för den användaren. Systemdatakällor kan användas av alla användare på en dator och visas för alla användare på datorn och systemomfattande tjänster. En maskindatakälla är särskilt användbar när du vill uppnå ökad säkerhet, eftersom endast användare som är inloggade kan se maskindatakällan och den inte kan kopieras av en fjärranvändare till en annan dator.
Fildatakällor
Fildatakällor (även kallade DSN-filer) lagrar anslutningsinformation i en textfil, inte i Windows-registret, och är i allmänhet mer flexibla att använda än maskindatakällor. Du kan till exempel kopiera en fildatakälla till valfri dator med rätt ODBC-drivrutin så att programmet kan förlita sig på konsekvent och korrekt anslutningsinformation till alla datorer som används. Eller så kan du placera fildatakällan på en enda server, dela den mellan många datorer i nätverket och enkelt underhålla anslutningsinformationen på en plats.
En fildatakälla kan också vara odelbar. En fildatakälla som inte kan delas finns på en enda dator och pekar på en maskindatakälla. Du kan använda odelbara fildatakällor för att få åtkomst till befintliga maskindatakällor från fildatakällor.
Anslutningssträngar
I en modul kan du definiera en formaterad anslutningssträng som anger anslutningsinformation. En anslutningssträng överför anslutningsinformationen direkt till ODBC-drivrutinshanteraren, och den förenklar ditt program genom att ta bort kravet att en systemadministratör eller användare först skapar ett DSN innan databasen används.
-
-
Skapa ny databas Om du väljer det här alternativet och sedan klickar på Nästa visas en sida i Access där du anger information om den nya SQL Server databasen.
-
Vilken SQL Server vill du använda för den här databasen? Skriv namnet på den server som du vill använda.
-
Använda betrodd anslutning Du kan använda en betrodd anslutning, d.v.s. SQL Server kan integrera med Windows-operativsystemets säkerhet för att tillhandahålla en enda inloggning till nätverket och databasen.
-
Inloggnings-ID och lösenord Om du inte använder en betrodd anslutning anger du inloggnings-ID och lösenord för ett konto med behörigheten SKAPA DATABAS på servern.
-
Vad vill du namnge din nya SQL Server databas? Skriv namnet på den nya SQL Server databasen. Namnet ändras i Access om det står i konflikt med ett befintligt databasnamn och lägger till ett numrerat suffix (till exempel mindatabas 1).
-
Steg 2: Välj vilka tabeller du vill ändra storlek på
I det här steget väljer du de Access-tabeller som du vill anpassa till den SQL Server databasen. Markera de tabeller som du vill ändra storlek på och använd sedan pilknapparna för att flytta dem till listan Exportera till SQL Server. Du kan också dubbelklicka på en tabell för att flytta den från en lista till en annan.
Listan Tillgängliga tabeller innehåller alla länkade tabeller utom SQL Server tabeller som redan finns i en SQL Server databas. Länkade tabeller som pekar på en SQL Server databas som har valts för storleksändring visas automatiskt i listrutan Exportera till SQL Server och kan inte tas bort. Tabeller som för närvarande inte visas i Navigeringsfönstret utesluts också, inklusive dolda tabeller och systemtabeller.
Tips: Alla tabeller som har ett namn som slutar med "_local" undantas från listan över tillgängliga tabeller för att förhindra att tabeller som redan har storleksändras ändras. Om du vill ändra storlek på tabellerna igen byter du namn på dem innan du kör Storleksguiden genom att ta bort suffixet "_local".
Steg 3: Ange attribut och alternativ som ska ökas
I det här steget väljer du vilka tabellattribut som ska öka storleken på SQL Server-databasen. Som standard är alla attribut markerade för storleksändring som standard.
Obs!: Som standard konverterar Storleksguiden access-fältnamn till juridiska SQL Server fältnamn och konverterar Access-datatyper till motsvarande SQL Server datatyper.
Vilka tabellattribut vill du öka storleken på?
I följande tabell visas de attribut som du kan ändra storlek på och beskriver hur guiden Storleksändring hanterar var och en av dem:
|
Attribut |
Åtgärd om den är markerad |
|||||||||||||||
|
Index |
Storleksguiden ändrar storlek på alla index. Storleksguiden konverterar Access-primärnycklar till SQL Server index och markerar dem som SQL Server primärnycklar. Om du väljer att länka den nya SQL Server-tabellen till Access-databasen läggs även prefixet "aaaaaa" till i indexnamnet i Storleksguiden. Det beror på att Access väljer det index som först står i alfabetisk ordning i listan över tillgängliga index som primärnyckel och "aaaaaa"-prefixet säkerställer att rätt index väljs. Alla andra index behåller sina namn, förutom där ogiltiga tecken ersätts med tecknet "_". Unika och icke-unika Access-index blir unika och icke-unika SQL Server index. En länkad tabell måste ha ett unikt index för att kunna uppdateras i Access. Storleksguiden kan öka storleken på ett befintligt unikt index, men det går inte att skapa ett där det inte finns något. Om du vill kunna uppdatera data i tabellerna efter att du har ändrat storlek på dem måste du lägga till ett unikt index i varje Access-tabell innan du ändrar storlek. |
|||||||||||||||
|
Valideringsregler |
Storleksguiden ändrar storlek på följande som uppdaterings- och infogningsutlösare:
En utlösare är en serie Transact-SQL-uttryck som är associerade med en SQL Server tabell. En tabell kan ha tre utlösare, en för vart och ett av kommandona som kan ändra data i en tabell: kommandona UPPDATERA, INFOGA och TA BORT. Utlösaren körs automatiskt när kommandot utförs. I Storleksguiden används utlösare i stället för SQL Server regler för att tillämpa verifiering på fältnivå eftersom SQL Server regler inte tillåter att anpassade felmeddelanden visas. Varje verifieringsuttryck har inte nödvändigtvis en 1:1-korrespondens med en utlösare. Varje verifieringsuttryck kan ingå i flera utlösare och varje utlösare kan innehålla kod för att emulera funktionaliteten i flera verifieringsuttryck. När du anger egenskapen Obligatorisk för ett Access-fält till true kan en användare inte infoga en post och lämna fältet null (om det inte finns någon standardbunden till fältet) eller göra fältet null när en post uppdateras. Obligatoriska fält ändras till fält som inte tillåter Null-värden på SQL Server. Verifieringstext Egenskapen Verifieringstext för Access-databas konverteras till access-projektets verifieringstextegenskap . På så sätt kan felmeddelanden i Access visas i händelse av ett begränsningsfel vid körning. |
|||||||||||||||
|
Standardvärden |
Storleksguiden ändrar storlek på alla standardvärdeegenskaper till ANSI-standardobjekt (American National Standards Institute). |
|||||||||||||||
|
Tabellrelationer |
Storleksguiden ändrar storlek på alla tabellrelationer. Du kan bestämma hur du ändrar storlek på tabellrelationer och referensintegritet med hjälp av uppdaterings-, infognings- eller borttagningsutlösare, eller genom att använda Deklarerad referensintegritet (DRI). DRI fungerar på samma sätt som referensintegritet i Access genom att definiera primärnyckelvillkor för bastabeller (1-sidan av en 1:N-relation) och sekundärnyckelvillkor för sekundärtabeller (vanligtvis N-sidan i en 1:N-relation).
|
Vilka dataalternativ vill du ta med?
-
Lägga till tidsstämpelfält i tabeller SQL Server använder ett tidsstämpelfält för att ange att en post har ändrats (men inte när den ändrades) genom att skapa ett unikt värdefält och sedan uppdatera det här fältet när en post uppdateras. För en länkad tabell används värdet i tidsstämpelfält för att avgöra om en post har ändrats innan den uppdateras. I allmänhet ger ett tidsstämpelfält bästa prestanda och tillförlitlighet. Utan ett tidsstämpelfält måste SQL Server kontrollera alla fält i posten för att avgöra om posten har ändrats, vilket gör prestandan långsammare.
I följande tabell beskrivs de tillgängliga inställningarna i den här listan:
|
Inställning |
Beskrivning |
|
Ja, låt guiden bestämma |
Om de ursprungliga Access-tabellerna innehåller flyttalsfält (Enkel eller Dubbel), PM eller OLE-objekt skapar Storleksguiden nya tidsstämpelfält i de resulterande SQL Server tabellerna för dessa fält. |
|
Ja, alltid |
Storleksguiden skapar ett tidsstämpelfält för alla tabeller med uppilar oavsett vilka fälttyper de innehåller. Det här förbättrar prestandan för upsized Access-tabeller som kanske inte innehåller memo-, OLE-objekt- eller flyttalsfält, men som har fält av andra typer. |
|
Nej, aldrig |
Storleksguiden lägger inte till tidsstämpelfält i tabeller. |
Viktigt!: I länkade SQL Server tabeller kontrollerar Access inte om MEMO- eller OLE-objektfält har ändrats eftersom dessa fält kan vara många megabyte stora och jämförelsen kan vara för nätverksintensiv och tidskrävande. Om bara ett text- eller bildfält har ändrats och det inte finns något tidsstämpelfält skriver Access över ändringen. Värdet för ett flyttalsfält kan också se ut att ha ändrats när det inte har gjort det, så i avsaknad av ett tidsstämpelfält kan Access fastställa att posten har ändrats när den inte har gjort det.
-
Skapa bara tabellstrukturen, ändra inte storlek på data Storleksguiden ändrar storlek på alla data till SQL Server som standard. Om du markerar kryssrutan Skapa endast tabellstruktur, ändra inte storlek på data ökar bara datastrukturens storlek.
Steg 4: Välj hur du vill öka storleken på programmet
På nästa sida i guiden kan du välja ett av tre olika sätt att ändra storlek på Access-databasprogrammet. Under Vilka programändringar vill du göra? väljer du något av följande alternativ:
-
Skapa ett nytt Access-klient-/serverprogram Om du väljer det här alternativet skapas ett nytt Access-projekt i Storleksguiden. I Storleksguiden uppmanas du att ange ett namn som standard till det aktuella Access-databasnamnet, lägger till suffixet "CS" och lagrar sedan projektet på samma plats som den befintliga Access-databasen.
Storleksguiden skapar Access-projektfilen och ändrar sedan storlek på alla databasobjekt från Access-databasen till Access-projektet. Om du inte sparar lösenordet och användar-ID:t visas dialogrutan Egenskaper för datalänk första gången du öppnar Access-projektet så att du kan ansluta till en SQL Server databas.
-
Länka SQL Server tabeller till ett befintligt program Om du väljer det här alternativet ändras Access-databasen i Storleksguiden så att dina frågor, formulär, rapporter och dataåtkomstsidor använder data i den nya SQL Server databasen i stället för data i Access-databasen. Storleksguiden byter namn på de Access-tabeller som du ändrar storlek på med suffixet "_local". Om du till exempel ändrar storlek på en tabell med namnet Anställda får tabellen ett nytt namn Employees_local i Access-databasen. I guiden Storleksändring skapas sedan en länkad SQL Server tabell med namnet Anställda.
Obs!: När storleksändringen är klar används inte längre tabellerna som har bytt namn till suffixet "_local". Det är dock en bra idé att behålla de lokala tabellerna tills du har kontrollerat att storleksändringen lyckades. Vid ett senare tillfälle kan du ta bort de lokala tabellerna för att minska storleken på access-databasen. Se till att säkerhetskopiera databasen innan du tar bort tabeller.
Frågor, formulär, rapporter och dataåtkomstsidor baserat på de ursprungliga tabellerna anställda använder nu den länkade tabellen SQL Server Anställda. Många av egenskaperna för fälten i den ursprungliga lokala tabellen ärvs av den nya lokala tabellen, inklusive Beskrivning, Beskrivning, Text, Format, InputMask och DecimalPlaces.
-
Inga programändringar Välj det här alternativet om du bara vill kopiera dina data till SQL Server databas och inte göra några andra ändringar i ditt befintliga Access-databasprogram.
Spara lösenord och användar-ID Som standard skapar Storleksguiden länkade tabeller i det befintliga programmet eller skapar ett Access-projekt utan att användarnamnet och lösenordet sparas. Det innebär att användarna uppmanas att ange användarnamn och lösenord varje gång de loggar in i en SQL Server databas.
Om du väljer Spara lösenord och användar-ID kan användarna ansluta till en SQL Server databas utan att logga in. Om du väljer Skapa nytt Access-klient-/serverprogram lagras användarnamnslösenordet i OLE DB-anslutningssträng i Access-projektet.
Obs!: Det här alternativet är inaktiverat för alternativet Inga programändringar om en länkad SQL Server tabell har konfigurerats med en MSysConf-tabell för att neka att lösenord sparas.
Rapporten Storleksguiden
När du klickar på Slutför skapar Storleksguiden en rapport med en detaljerad beskrivning av alla objekt som skapats och rapporterar eventuella fel som uppstått under processen. I Storleksguiden visas rapporten i förhandsgranskningsvyn och du kan sedan skriva ut eller spara rapporten, till exempel som en XPS- eller PDF-fil. Rapporten sparas inte som ett Access-objekt när du stänger fönstret Förhandsgranska.
Rapporten Upsizing Wizard innehåller information om följande:
-
Storleksändringsparametrar, inklusive vilka tabellattribut du valde att ändra storlek på och hur du ökar storleken.
-
Tabellinformation, inklusive en jämförelse av Access- och SQL Server-värden för namn, datatyper, index, verifieringsuttryck, standardvärden, utlösare och huruvida tidsstämplar har lagts till eller inte.
-
Eventuella fel som uppstått, till exempel att databasen eller transaktionsloggen är full, otillräckliga behörigheter, att enheten eller databasen inte har skapats, att en tabell, ett standarduttryck eller ett verifieringsuttryck hoppades över, att relationen inte tillämpades, att frågan hoppades över (eftersom den inte kan översättas till SQL Server syntax) samt kontroll och datakälla konverteringsfel i formulär och rapporter.
Så här ökar storleksanpassas databasobjekt
Följande data- och databasobjekt ökar:
-
Data- och datatyper Alla Access-databasdatatyper konverteras till motsvarande data i SQL Server. Guiden konverterar Access-databastext till Unicode genom att lägga till Unicode-strängidentifieraren till alla strängvärden och genom att lägga till Unicode n-prefixet i alla datatyper.
-
Frågor
-
Urvalsfrågor som inte har en ORDER BY-sats eller parametrar konverteras till vyer.
-
Redigeringsfrågor konverteras till lagrade proceduråtgärdsfrågor. Access lägger till SET NOCOUNT ON efter parameterdeklarationskoden för att säkerställa att den lagrade proceduren körs.
-
Urvalsfrågor som endast refererar till tabeller (kallas även basfrågor) som använder antingen parametrar eller en ORDER BY-sats konverteras till användardefinierade funktioner. Om det behövs läggs satsen TOP 100 PROCENT till i en fråga som innehåller en ORDER BY-sats.
-
Parameterfrågor som använder namngivna parametrar behåller det ursprungliga textnamnet som används i Access-databasen och konverteras antingen till lagrade procedurer eller infogade användardefinierade funktioner.
Obs!: Du kan behöva konvertera frågor som inte har ökats manuellt, till exempel SQL-direktfrågor, datadefinitionsfrågor och korsfrågor. Du kan också behöva ändra storlek på frågor som kapslats för djupt manuellt.
-
-
Forms, rapporter och kontroller SQL-uttryck i RecordSource-, ControlsSource - och RowSource-egenskaper för formulär, rapporter eller kontroller sparas på plats och konverteras inte till lagrade procedurer eller användardefinierade funktioner.
-
Startegenskaper Storleksguiden ändrar storlek på följande startegenskaper:
StartUpShowDBWindowStartUpShowStatusBarAllowShortcutMenusAllowFullMenusAllowBuiltInToolbarsAllowToolbarChangesAllowSpecialKeysUseAppIconForFrmRptAppIconAppTitleStartUpFormStartUpMenuBarStartupShortcutMenuBar
-
Moduler och makron Storleksguiden gör inga ändringar i moduler eller makron. Du kan behöva ändra ditt program för att dra full nytta av SQL Server funktioner. Mer information finns i MSDN-artikeln Optimera Microsoft Office Access-program som är länkade till SQL Server.