Select data fra identiske tabeller i forskellige databaser
Jeg skal hente data fra ens tabeller i to forskellige databaser. Da det er ret komplekse forespørgsler vil jeg helst køre det i en løkke, så jeg ikke får et vedligeholdelses-problem, men jeg kan ikke finde en måde at få USE til at fungere. Her er det jeg egentlig vil opnå, men som sagt i en løkke i stedet:
use db1 select * into #Temp from ex1 use db2 select * into #Temp from ex1
declare @a set @a = 2 while @a > 0 begin case @a when 2 then ... (fx sætte en variabel = database, men jeg ved ikke hvordan) when 1 then ... end select ... end
Hvor mange databaser? Hvor mange tabeller? Hvor store select-statements?
Problemet er, at du ikke kan bruge variable i select og use, så du skal i løkken bygge et SQL statement op i en eller flere varchar-variable og derfter udføre dem via execute.
Denne løsning giver IMHO langt større vedligeholdelsesproblemer end en fast kodet union select, som jeg skitserede.
Jeg skal hente data fra to databaser som er identiske i opbygning (tabellerne er helt ens). Som to databaser med samme type data fra to forskellige butikker i en kæde fx. Jeg bruger 3-4 tabeller, men data samles først i et par temp-tabeller. Min select (inklusive konstruktion af nogle temp-tabeller) fylder over 120 linjer). Er det ikke muligt at bruge en konstruktion som:
Declare @db <database> set @db = db1 (eller 'db1') select * from @db..ex1
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.