Avatar billede rbl Praktikant
29. november 2015 - 01:41 Der er 14 kommentarer

Kopiere data fra en server til en anden via Stored Procedure

Hejsa

Er det muligt at skrive noget sql, der kopierer data fra en tabel over i en tabel på en anden server?

Serverne er ikke linket sammen.
Avatar billede arne_v Ekspert
29. november 2015 - 01:57 #1
Hvis serverne ikker linket samme kan du ikke bruge almindelig server.user.table i TSQL.

Jeg vil tro at det mest praktiske er at bruge MS's ETL tool.

Hvis du har hang til programmering kan du skrive en CLR SP i C#.
Avatar billede rbl Praktikant
29. november 2015 - 02:10 #2
Jeg kan sagtens skrive noget C#, men hvad er en CLR SP?
Avatar billede arne_v Ekspert
29. november 2015 - 02:14 #3
En SP skrevet i C# (eller VB.NET) i.s.f. TSQL.
Avatar billede rbl Praktikant
29. november 2015 - 02:19 #4
Ok, men hvordan vil koden så se ud, når jeg skal kopiere mellem 2 servere?

Det er jo det, jeg ikke lige kan regne ud...
Avatar billede arne_v Ekspert
29. november 2015 - 02:34 #5
I C# laver du jo bare en helt normal SqlConnection til den anden SQLServer og SqlCommand's med INSERT.
Avatar billede rbl Praktikant
29. november 2015 - 13:28 #6
Men kommer alt data så ikke forbi programmet?

Altså så man henter alt data ud fra db1 og gemmer det i db2?
Avatar billede arne_v Ekspert
29. november 2015 - 14:41 #7
Al data kommer gennem den stored procedure.
Avatar billede rbl Praktikant
30. november 2015 - 00:03 #8
Jeg kan ikke helt regne ud, hvordan det skal skrues sammen.

Kan du komme med et eksempel?
Avatar billede Slettet bruger
30. november 2015 - 09:20 #9
Det som arne prøver at fortælle er at du i et C# console program fx. kan lave 2 SqlConnections.

1 til den første server hvor du selecter dine data og smider i en liste eller hvad du nu har preferencer for.

Så opretter du en anden SqlConnection som peger på den server hvor du skal lande data. Her i laver du et insert statement så enten indeholder dine værdier eller kolonner fra første SqlConnection.

Alternativ kan du opsætte en linked server på en af serveren under mangemen studio, så du på den måde kan angiver servernavn.db.skema.tabel og derved kan du forespørge direkte mellem 2 servere.
Avatar billede Slettet bruger
30. november 2015 - 09:22 #10
Avatar billede arne_v Ekspert
30. november 2015 - 15:37 #11
2 SqlConnections ja, men ikke et et eksternt program men i en CLR stored procedure.
Avatar billede Slettet bruger
30. november 2015 - 15:43 #12
Det er vel fuldstændig irrelevant - Det kommer an på hvad man er tilhænmger af. Insert statement er hurtigere end at kalde en SP.
Avatar billede arne_v Ekspert
30. november 2015 - 15:55 #13
Har du laest titlen paa spoergsmaalet?

:-)
Avatar billede Slettet bruger
30. november 2015 - 16:14 #14
Jo jo ! Men han skriver også det her

"Er det muligt at skrive noget sql, der kopierer data fra en tabel over i en tabel på en anden server?"

Så nødvendigvis behøver det ikke være en i SP, men ellers har du ret ja ;)
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

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