Avatar billede pimpf202 Nybegynder
18. november 2004 - 22:59 Der er 8 kommentarer og
1 løsning

create table

Jeg har et problem, som jeg ikke kan gennemskue hvordan jeg løser.

Jeg skal oprette alle tabeller (ikke data, bare tabellerne) som jeg har i en gammel database, over i en ny database. Dataen indsætter jeg  bagefter via bcp.
hvis jeg eks, skriver følgende:
select top 1 * from sysobjects where xtype = 'U'
så får jeg jo pænt svar tilbage, men hvordan "gemmer" jeg det, så jeg kan oprette en tilsvarende tabel i en ny database ??
Avatar billede 13thsky Nybegynder
18. november 2004 - 23:20 #1
gennem mysql.admin kan du jo bare eksportere db'en til et sql dokument (og selv vælge om det skal være data, stuktur, eller begge dele). -ja og så importere sql dokumentet i den nye db.

/13
Avatar billede janus_007 Nybegynder
19. november 2004 - 00:31 #2
Jeg formoder det er mssql, selvom 13thsky svarede som om det var mysql.
Anyway jeg ville bruge et DTS job til den slags, der findes faktisk lige akkurat noget til det nemlig "Copy SQL Server Objects"
Læs selv videre her: http://www.devguru.com/features/tutorials/DTS/DTS1.html på side 2 kan man lige se omtalte...

God fornøjelse.
Avatar billede pimpf202 Nybegynder
19. november 2004 - 09:13 #3
Hej igen.
Det er en ms sqlserver 7.0, så jeg kan desværre ikke bruge 13thsky svar til så meget. Jeg kender udemærket til DTS jobbet, men problemet er bare at DTS altid fryser op når datamængderne bliver store (det gør den i hvertfald altid for mig). Derfor har jeg ikke brugt den til data'ene.
Avatar billede janus_007 Nybegynder
19. november 2004 - 09:48 #4
Ja ok.. Jamen så ville jeg evt. som du selv foreslår bruge sysobjects til at finde dine usertables med eller denne her select * from information_schema.tables det er den som Microsoft anbefaler istedet for at kigge i systemtabeller.
Anyway... Når du så har dine tabeller så er det bare at gå igang med at bygge dem op igen. Du kan finde alle dine kollonner i (sørme om ikke Microsoft endnu engang har været venlige hehe..) her: select * from information_schema.columns

Jeg ville nok bruge en cursor til at loope igennem den tabel og så skrive til en tabel med et stort felt til at holde hele definitionen. Herefter ville jeg smide det ud i en textfil eller lignende... Har aldrig gjort det før, så derfor er jeg lidt svævende lige her på sidste etape hehe... Men jeg regner stærkt med det kan lade sig gøre.
19. november 2004 - 10:13 #5
Hvis det kun er strukturen du skal have lavet en kopi af, så er det nemmeste vist at lave et SQL Script af databasen. Default laver EM blot et script af tabeller, men det er muligt at få den til at medtage index o.l.
mvh
Henrik
Avatar billede pimpf202 Nybegynder
19. november 2004 - 10:39 #6
Jeg har brugt en cursor da jeg lavede en script til at eksportere dataen. Mit problem nu er at når jeg laver en select mod sysobjects (kan ikke finde information_schema på sql 7.0), så får jeg jo eks. 5 kolonner (  eller 10 eller 3), og hvordan får jeg "styr" på dem, så jeg eks kan gemme hver kolonne i en variabel, som jeg så kan bruge til at oprette tabellen med igen. Ellers får jeg jo bare et stort felt med en masse tekst i ??
Avatar billede pimpf202 Nybegynder
19. november 2004 - 10:55 #7
Jeg er desværre nød til at få en lidt mere udybende forklaring på  hvad du mener med at scripte databasen ud via EM??
Avatar billede pimpf202 Nybegynder
22. november 2004 - 09:00 #8
Lidt uddbyende information (sqlsrv 7.0 sp4 ca. 30 gb data fordelt over 20.000 tabeller):
Jeg har en database, som kører suspect/emergency mode. Denne database, kan jeg ikke få tilbage i normal status, og jeg vil derfor gerne have så mange objekter ud af den som muligt. Jeg kan ikke lave en backup af databasen, da den så kommer med en meddelelse om at den er i "bypass recovery mode." Jeg ville så gøre det via DTS, da det jo ville være dejligt nemt. Her lod jeg sql serveren stå i 3 døgn, men den blev hængende i samme skærmbillede med at den scriptede.. og så skete der ikke mere. Så lavede jeg et lille script, der via bcp eksporterede tabellerne ud. Dette fungere fint, men nu har jeg ca.  20.000 filer (da der var 20.000 tabeller), og jeg kan simpelthen ikke finde ud af hvordan jeg skal importere dem igen, da jeg jo er nød til at oprette tabel strukturen før jeg kan importere via bcp. Desuden mangler jeg stadigvæk mine views (ca 4.000) samt et par hunrede stored procedures. Jeg har fra i morgen af fået adgang til en meget meget kraftig server, som jeg vil forsøge dts rutinen på igen, og se om jeg har mere held med mig der. Fungere det ikke der, så ved jeg ikke hvad jeg skal stille op. Håber meget at der er nogen af jer der kan hjælpe.
Avatar billede pimpf202 Nybegynder
28. november 2004 - 20:09 #9
Jeg lukker spørgsmålet igen, da det ikke lader til der kommer yderligere 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