webForumDet fria alternativet

Join, 2 databaser, 2 sql servrar

8 svar · 1 511 visningar · startad av firstchoice

firstchoiceMedlem sedan okt. 2001605 inlägg
#1

Har en server där jag har min applikation + en SQL databas.
Behöver även hämta lite kund information från en annan databas på en annan server. hur gör jag min SQL sats?

@ndersMedlem sedan juni 200026 914 inlägg
#2

Snälla - berätta vad du använder för dbms. Microsoft SQL Server?

firstchoiceMedlem sedan okt. 2001605 inlägg
#3

yes! det är en MS SQL Server, vilken generation vet jag tyvärr inte...

@ndersMedlem sedan juni 200026 914 inlägg
#4

Då får du börja med att sätta upp en "Linked server" i enterprise manager / management studio. När du gjort det kan du joina, typ:

select foo from tabell1 t1
inner join [länkad server].databasnamn.ägare.tabell2 t2
on t1.id = t2.någotid
firstchoiceMedlem sedan okt. 2001605 inlägg
#5

vad betyder detta?

Msg 468, Level 16, State 9, Line 1
Cannot resolve the collation conflict between "Finnish_Swedish_CI_AS" and "Finnish_Swedish_CS_AS" in the equal to operation.

@ndersMedlem sedan juni 200026 914 inlägg
#6

Det betyder att det är olika collation på de fält du försöker joina. Du får lägga med collate i joinen så fälten kan jämföras.

...
on t1.id collate Finnish_Swedish_CS_AS = t2.någotid collate Finnish_Swedish_CS_AS

Du behöver egentligen inte collate på båda fälten - det räcker med att sätta collation på det ena så det är samma som i det andra.

firstchoiceMedlem sedan okt. 2001605 inlägg
#7

i ren svenska, vad betyder det? :)

Det betyder att det är olika collation på de fält du försöker joina

@ndersMedlem sedan juni 200026 914 inlägg
#8

Collation är sorteringsordning, och används vid sortering och jämförelser. Finnish_Swedish_CS_AS är skiftlägeskänslig och accent-känslig, dvs Sverige är inte samma som SVERIGE, och idéer är inte samma som ideer.

firstchoiceMedlem sedan okt. 2001605 inlägg
#9

har nu knåpat ihop en lång sql sträng
denna fungerar utmärkt när jag kör den i SQL Server Management men på min asp sida får jag ett felmeddelande. vad kan detta bero på?

SQL = "SELECT tSV.ScheduledVisitorsVisitorsID AS VisitorsID, tSV.ScheduledVisitorsStaffID AS StaffID, tSV.ScheduledVisitorsPictureID AS PictureID, tSVP.ScheduledVisitorsPictureURL AS PictureURL, tC.[First Name] AS v_First_Name, tC.[Middle Name] AS v_Middle_Name, tC.[Surname] AS v_Surname, tE.[First Name] AS e_First_Name, tE.[Last Name] AS e_Last_Name "
SQL = SQL & "FROM tblScheduledVisitors tSV INNER JOIN [SQLSER\NAV].Nav.dbo.[Contact] tC "
SQL = SQL & "ON tC.No_ collate Finnish_Swedish_CS_AS = tSV.ScheduledVisitorsVisitorsID collate Finnish_Swedish_CS_AS "
SQL = SQL & "INNER JOIN [SQLSER\NAV].Nav.dbo.[Employee]tE "
SQL = SQL & "ON tE.No_ collate Finnish_Swedish_CS_AS = tSV.ScheduledVisitorsStaffID collate Finnish_Swedish_CS_AS "
SQL = SQL & "INNER JOIN tblScheduledVisitorsPicture tSVP "
SQL = SQL & "ON tSVP.ScheduledVisitorsPictureID = tSV.ScheduledVisitorsPictureID"

felmeddelande:

Microsoft OLE DB Provider for ODBC Drivers error '80040e37'

[Microsoft][SQL Native Client][SQL Server]Invalid object name 'tblScheduledVisitors'.

/LoginVisitors/signin.asp, line 42

rad 42:

set Rs = dbConnection.execute(SQL)

:q

Genererad på 378 ms · cache AV · v20260730165559-full.f96bc7eb