20. februar 2004 - 15:57Der er
5 kommentarer og 1 løsning
SQL på to forskellige databaser
Hejsa,
Jeg har to databaser, som jeg connecter til vha følgende:
- en ADO connection - en Datasource - en ADO table
Det er fint nok, og jeg kan smide sql efter den osv. Men nu er det sådan at jeg vil lave et JOIN mellem de to tabeller, som ligger i hver deres databse.
I bekræftende fald er det ikke ret svært. Så klasificerer du blot dine tabeller med to prikker.
Et ekspempel : select top 10 * from [JB_Scheelsminde_20040119]..Customer (nolock) union select top 10 * from [JP_Sohojlandet_20040120]..Customer (nolock)
JB_Scheelsminde_20040119 og JP_Sohojlandet_20040120 er to databaser der ligger på den samme server ... Man kan også selecte på tværs af servere .. Men den kan jeg ikke lige på fingerne !
Så længe begge databaser er på SQL Server kan ovenstående godt benyttes, men rent performance mæssigt bør man ikke benytte .. men angive ejeren som dbo (eller hvad tabel-ejeren nu hedder).
Derudover - select på tværs af servere sker typisk ved at benytte funktione OPENDATASOURCE() eller OPENROWSET() eller også opretter man en LINKED SERVER og benytter samme strategi som ovenfor.
Minuset ved løsningen ovenfor er helt klart, at det forudsætter at det ene login har ret til at tilgå begge database / servere.
Er de to databaser på forskellige platforme (Access/SQL Server/Oracle/whatever) - så er arnes løsning den korrekte - og også den jeg ville vælge at implementere. Du burde kunne fake et join ved at sætte et filter op på dit join kriterie.
Ups, sorry for den sene accept. Well jeg endte med at lave det som arne foreslog med "join" i koden. Der var nemlig tale om 2 forskellige platforme (Excell og Access)
/Sune
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.