Oppgradere fra Access til SQL Server express (oppdatert høst 2013)

Artikkelen er nå oppdatert med informasjon om den automatisk oppgraderingsmuligheten som er lagt inn i eRedaktør.

For å oppgradere databasen fra MS Access til SQL Server Express (med mulighet for å bruke SQL Server) kan en nå trykke på en enkelt knapp i eRedaktør-grensesnittet.

  1. Logg inn som utvikler
  2. Gå til utviklingsverktøyet
  3. Åpne Database
  4. Klikk på Views og noter ned eventuelle views som er opprettet. Du kan overse viewet som heter "Menu"
  5. Dersom det ikke er noen view eller alle starter navnet med _ kan du fortsette
  6. Velg "Oppgradere datbase" fra venstre spalte og trykk på knappen "oppgrader"
  7. Det vil nå gå litt tid mens databsen oppgraderes. Ikke trykk på noe mer, men bare vent. Det kan ta mange minutter (gjerne over 10 minutter)
  8. Når oppgraderingen er ferdig vil du se at ikke alle tabellene ble oppgradert. Dersom de heter noe med "Shop", kan du bare overse det, ettersom du ikke har nettbutikk
  9. Dersom det var noen view som begynte med _, åpner du feltsettene med tilsvarende navn (uten _) og velger å opprette view og oppretter dem.
  10. Sjekk at nettsiden fungerer som den skal. Dersom du får feilmeldinger, sjekk om det er skrevet noe access-spesifikt i spørringen og endre dette til SQL Server-spesifikt.

[Gammel artikkel] Her er en metode for å flytte data fra MS Access til SQL Server (express) ved å bruke SQL Server Manager.

Dersom du importerer en database med SQL Server Manager (SSM), blir ikke identifikasjonsfelt aktivert automatisk. Én måte å løse dette på, er å gjøre det manuelt i etterkant. En annen måte, som beskrives her, er å importere data inn i en eksisterende database med ferdig tabelloppsett.

1. Start SQL Server Manager som Administrator. Dette gjøres ved å høyreklikke på programikonet.

2. Ta en kopi av en database, eller finn frem den databasen du skal legge data inn i. Dersom du kjører eRedaktør Run-Time, kan du kopiere databasen i Windows Utforsker og legge den i kundens databasemappe (opprett den dersom den ikke eksisterer). Da blir den automatisk koblet opp i SSM når du laster siden første gang.

3. Vi fortsetter med å tømme databasen og klargjøre den for import. Kjør følgende i SQL Server Manager på databasen:

EXEC sp_MSForEachTable 'DELETE FROM ? '
EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'    

EXEC sp_MSForEachTable '
 IF OBJECTPROPERTY(object_id(''?''), ''TableHasForeignRef'') = 1
  DELETE FROM ?
 else
  TRUNCATE TABLE ?

  '
GO

3. Nå er databasen klar for å importeres til. Høyreklikk på databasen i venstre spalte i verktøyet og velg Tasks > Import data...

4. I Data source, velg Microsoft Access

5. Trykk så Browse... og  finn databasen. Gå til neste side

6. På neste side må du velge databasen du skal importere til. Det kan være at den er valgt allerede. Gå til neste side

7. Velg Copy data... dersom den ikke allerede er valg. Gå til neste side.

8. Kryss av de tabellene(ikke view, som vises nederst) du skal importere. Vær oppmerksom på at det ikke er sikkert at alle tabellene finnes i databasen du skal oppgradere til, og det er kun nødvendig å importere tabeller det ligger data i. Det enkleste er likevel å begynne med å trykke på avkrysningen øverst, slik at alle merkes. Mens alle er merket (merk alle hvis du ikke har merket alle allerede), trykker du på Edit mappings... og krysser av for Enable identity insert. Dersom du ser at du har merket av tabeller som er grå på høyre side, vil det si at disse ikke eksisterer i SQL Server databasen og sannsynligvis bør merkes bort. Gå til neste side.

9. Velg Ignore i begge boksene nederst dersom du ønsker at feil skal oversees. Gå til neste side.

10. Sjekk at Run immediately er krysset av. Gå til neste side

11. Trykk Finish.

12. Dersom du får feil på en tabell,  les dette punktet ferdig og gå tilbake til punkt 8 og fjern tabellen ellers gå til punkt 13.

Du kan trykke deg tilbake i veiviseren ved å bruke Back knappen. Før du kjører funksjonen på nytt må du slette alle radene ved å kjøre:

EXEC sp_MSForEachTable 'DELETE FROM ? '

13. Reaktiver funksjonalitet vi skrudde av tidligere:

EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL'
GO