Avatar billede iblarsen Praktikant
10. januar 2005 - 10:49 Der er 6 kommentarer og
1 løsning

Kopiering af tabeller fra en SQLServer til en anden

Er der nogen som har et forslag til en løsning på følgende problem:

Jeg skal kopiere nogle tabeller fra en SQLServer til en anden. Det skal ske via et C# program. - og for at gøre det hele lidt mere problematisk. Kender jeg ikke tabelnavnene før programmet bliver eksekveret.

NB.: Helst en løsning uden brug af DTS, BCP og lign.
Avatar billede arne_v Ekspert
10. januar 2005 - 11:06 #1
Kode til at finde tabelnavne med:

            SqlConnection con2 = new SqlConnection("server=ARNEPC2;Integrated Security=SSPI;database=" + dbnam);
            con2.Open();
            SqlCommand cmd2 = new SqlCommand("sp_tables", con2);
            cmd2.CommandType = CommandType.StoredProcedure;
            cmd2.Parameters.Add("@table_type", "'TABLE'");
            SqlDataReader rdr2 = cmd2.ExecuteReader();
            while(rdr2.Read()) {
                string tblnam = (string)rdr2[2];
                // gem tblnam
            }
            con2.Close();
Avatar billede arne_v Ekspert
10. januar 2005 - 11:07 #2
Du kan bruge sp_columns til at finde felterne for en tabel.
Avatar billede iblarsen Praktikant
10. januar 2005 - 12:08 #3
Tak for dit forslag. Det giver mig ideer til hvordan jeg kan løse resten.
Smid lige et svar
Avatar billede arne_v Ekspert
10. januar 2005 - 12:09 #4
Altså flytte data er vel ret uproblematisk:
  INSERT INTO nytabel SELECT * FROM gltabel

Så du skal bare have oprette den nye tabel med de rigtige felter.

Og et svar.
Avatar billede iblarsen Praktikant
10. januar 2005 - 13:19 #5
Der er ingen problemer med "INSERT INTO nytabel SELECT * FROM gltabel" når det gælder samme maskine/database. Det bliver først rigtig sjovt når (som angivet i spørgsmålet) når det er fra en maskine til en anden.
Avatar billede arne_v Ekspert
10. januar 2005 - 13:22 #6
Hvis de 2 servere kender hinaden bør du stadig kunne kopiere dem med

server.database.bruger.tabelnavn

syntaxen.

Men ellers må du jo bruge en data reader i en whil eløkke som laver
INSERT sætninger.
Avatar billede iblarsen Praktikant
10. januar 2005 - 23:32 #7
Jeg mener at have læst at "server.database.bruger.tabelnavn" ikke dur. Noget med at der ikke må være mere en 2 prefix'er?
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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