18. november 2004 - 22:59Der 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 ??
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.
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...
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.
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.
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
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 ??
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.
Jeg lukker spørgsmålet igen, da det ikke lader til der kommer yderligere svar...
Synes godt om
Ny brugerNybegynder
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.