Avatar billede dennisbjorn Juniormester
10. august 2012 - 19:47 Der er 12 kommentarer og
1 løsning

Flytte data mellem to SQL-servere

Jeg skal flytte en database fra en MS-SQL server 2000 til en MS-SQL server 2008 R2.

Har prøvet med 'Import  Wizard' på 2008 serveren, samt med  'Data Transformations Services Export Wizard' på 200 serveren.

Begge metoder flytter godt nok tabeller og data, men Primary keys, Identity's og  default values på samtlige felter kommer ikke med over!

Håber på hjælp
Avatar billede arne_v Ekspert
10. august 2012 - 19:55 #1
En måde må være at generere DDL SQL scripts på fra databasen og eksekvere på til databasen.

De ting du lister mener jeg kommer med der.
Avatar billede dennisbjorn Juniormester
10. august 2012 - 20:55 #2
Jeg kan ikke finde noget der hedder 'DDL', men har genereret en SQL fil ved at højre klikke på databasen > All tasks > Generate SQL script, og kørt den på 2008 serveren. 
Nu får jeg tabellerne flyttet med alle Primary keys, Identity's og  default - men nu kommer data'ene ikke med over - få kun en tom tabel.
Avatar billede arne_v Ekspert
11. august 2012 - 00:05 #3
korrekt

men saa flytter du data over i de nye tabeller
Avatar billede niklask Nybegynder
11. august 2012 - 07:40 #5
Tasks > Generate Scripts > I Set Scripting Options vælger du Advanced, og sætter "Types of data to script" til Schema and data.
Avatar billede dennisbjorn Juniormester
11. august 2012 - 08:24 #6
@Niklas - den Advanced option findes vist ikke på min 2000 version. Jeg kan kun generere script der kopier tabeller uden data.

@Arne - sagen er den, at det er en applikation der skal over på en ny server og kører, hvorefter den gamle (=2000 server) skal lukkes ned. Derfor skal alle data og ID felter kopieres med over.
ID's (=[int] PK- IDENTITY)

Hvis jeg indsætter data efter at tabellerne er oprettet, så vi værdierne i identity felterne (PK) jo komme til at starte med 1,2,3 osv., og ID i de eksisterende tabeller starter ikke alle med 1,2,3 osv, da der er linier der er slettet.
Avatar billede dennisbjorn Juniormester
11. august 2012 - 08:27 #7
Med andre ord - så skal alle linier beholde deres oprindelige ID
Avatar billede Syska Mester
11. august 2012 - 09:35 #8
Ved ikke om det er muligt, men kan du ikke stoppe SQL 2000 ... kopiere de to database filer og attached dem på din SQL 2008 R2?

Det ville jeg i hvert fald gøre ... derefter kan du upgrade den til nyeste "version" ... som vist hedder 10, så du får de nye features med.

Ved ikke om det er muligt, men i hvert fald nemt hvis det kan lade sig gøre.

mvh
Avatar billede arne_v Ekspert
12. august 2012 - 01:36 #9
Hvis du loader data hvor id har en vaerdi, saa bliver de loadet med den vaerdi de har i data ikke hvor identity er kommet til.

(men du skal vistnok lave en:
  SET IDENTITY_INSERT tabelnavn ON
for at SQLServer tillader det.
Avatar billede leif Seniormester
12. august 2012 - 17:34 #10
Personligt laver jeg en "Backup" på gl. server og Restore på ny server.
Avatar billede dennisbjorn Juniormester
13. august 2012 - 15:39 #11
Tak til alle for input.

Det lykkede med backup metoden - så leif du må gerne smide et svar.
Avatar billede leif Seniormester
13. august 2012 - 19:08 #12
Altid dejligt at kunne hjælpe
Avatar billede leif Seniormester
13. august 2012 - 19:12 #13
Jeg prøver lige med et svar :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB