Avatar billede sbay Nybegynder
18. maj 2009 - 21:19 Der er 2 kommentarer og
1 løsning

ODBC connections fra MS SQL

HVis jeg i min MS SQL query vil tilgå en datakilde, skal den så være specificeret direkte på SQL serveren, eller kan det gå med den klient der udfører query'en? I begge tilfælde kunne jeg godt bruge et lille eksempel på syntaksen!
Avatar billede trer Nybegynder
19. maj 2009 - 21:48 #1
hej

Du må være lidt mere specifik.... forsøger du at trække data fra flere databaser på samme sql server instans eller fra forskellige instanser / servere ?

hvis du blot vil joine data fra to databaser på samme instans er det meget simpelt;

fx
select x,y,z
from db1.dbo.tabel1 t1
inner join db2.dbo.tabel2 t2
on t1.x = t2.y

Hvis databaserne er på forskellig instanser (eller endda forskellige database typer) har du flere muligheder.

Kig i Books Online (som du enten bør have installeret sammen med din SQL Server eller tilgå direkte på Microsofts hjemmeside) og læs om OPENDATASOURCE() og OPENROWSET() eller endda OPENQUERY() og linked servers.

Bruger du linked servers er syntaksen nu blot

select x,y,z
from db1.dbo.tabel1 t1
inner join link1.db2.dbo.tabel2 t2
on t1.x = t2.y

for at joine en tabel fra db1 med en tabel t2 i databasen db2 på serveren du har defineret som link1.

Bruger du OPENDATASOURCE er syntaksen

select x,y,z
from db1.dbo.tabel1 t1
inner opendatasource(<provider>,<connect info>).dbo.tabel2 t2
on t1.x = t2.y

Under alle omstændigheder - tænk lige over sikkerheden når du implementerer en sådan løsning samt at du får en "stærk binding" mellem to systemer; Er den ene database nede eller hikker netværket er din app OGSÅ nede.

Et mere stabilt design ville være at pumpe data mellem de to databaser så du kun skal tilgå en database. Check evt. Integration Services i Books Online og/eller replikering. Men vær obs på at du nu er på vej ud i noget komplekst - og noget der kræver en vis viden efterfølgende for at vedligeholde!
Avatar billede sbay Nybegynder
19. maj 2009 - 22:09 #2
Ok - tak for info - jeg vil studere det lidt nærmere. Det er en DB2 database jeg skal fange data fra, og som du skriver er det noget med at hente det og lægge det i en MSSQL tabel, og derefter behandle det!
Avatar billede sbay Nybegynder
23. august 2010 - 10:58 #3
lukkes
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