Meddelande

Minska
No announcement yet.

SELECT från två databaser

Minska
X
 
  • Filter
  • Klockan
  • Show
Clear All
new posts

  • SELECT från två databaser

    Jag har två databaser som är likadana, samma tabeller etc.
    Det enda som skiljer är givetvis innehållet i tabellerna.

    I stället för att behöva köra två frågor så skulle jag vilja kunna köra bara en.
    Men jag är inte ens säker på om det går?

    Denna fråga har jag nu mot en databas.
    Kod:
    use sweswvaxj0005_WSS_Content
    SELECT
          sites.LastContentChange
          ,webs.FullUrl
          ,webs.Title
      FROM [AllSites] as sites
      INNER JOIN [AllWebs] as webs
      ON sites.Id = webs.SiteId
      WHERE LastContentChange < '2014-07-01'
      ORDER BY sites.LastContentChange ASC
    Om jag var blygsam,skulle jag vara perfekt
    ><((((º>

  • #2
    Jag är inte expert på alla världens databaser...
    Men, du har ju någon form av EXECUTE kommando i många databaser och då skickas frågan till EN databas.

    Jag tror / gissar att det är enklast att skicka en fråga till varje databas och sen spara materialet i någon form av variabel och sen mixtra med den variabeln, som array eller liknande.

    Du ska tänka på att du ska komma ihåg vad du gjorde efter två-tre månader, så med det i åtanke kan kanske en liten omväg vara att föredra då det är lättare att redigera i efterhand.

    Ja... det är hög spekulation på detta inlägget, det ska medges! :-)

    Kommentera


    • #3
      Löste det med en temporär tabell och två select.
      Kanske inte den bästa lösningen? Men så får det bli för tillfället.

      Kod:
      -- Ändra värde på @fromdate
      
      DECLARE @fromdate as Date
      SET @fromdate = '2014-07-01'
      
      DECLARE @LastContentChangeTemp TABLE ( 
      	LastContentChange datetime
      	, FullUrl nvarchar(256) 
      	, Title nvarchar(255)
      ) 
      
      INSERT INTO @LastContentChangeTemp (LastContentChange, FullUrl, Title) 
      	SELECT sites.LastContentChange
      		,webs.FullUrl
      		,webs.Title
      		FROM [sweswvaxj0005_WSS_Content].[dbo].[AllSites] as sites
      		INNER JOIN [sweswvaxj0005_WSS_Content].[dbo].[AllWebs] as webs
      		ON sites.Id = webs.SiteId
      		WHERE LastContentChange < @fromdate
      		ORDER BY sites.LastContentChange ASC
      		
      INSERT INTO @LastContentChangeTemp (LastContentChange, FullUrl, Title) 
      	SELECT sites.LastContentChange
      		,webs.FullUrl
      		,webs.Title
      		FROM [sweswvaxj0005_WSS_Content_2].[dbo].[AllSites] as sites
      		INNER JOIN [sweswvaxj0005_WSS_Content_2].[dbo].[AllWebs] as webs
      		ON sites.Id = webs.SiteId
      		WHERE LastContentChange < @fromdate
      		ORDER BY sites.LastContentChange ASC
      		
      SELECT * FROM @LastContentChangeTemp
      Om jag var blygsam,skulle jag vara perfekt
      ><((((º>

      Kommentera


      • #4
        Om det är sql server så är principen denna:
        SELECT * FROM Databas1.dbo.TabellNamn
        UNION ALL
        SELECT * FROM Databas2.dbo.TabellNamn
        Writing programs that get things done is good. You’ll never make it as a C# programmer if your programs don’t actually do something — unless, of
        course, you’re a consultant.

        Kommentera


        • #5
          Kort följdfråga. Varför har du inte all data i samma databas och samma tabell med ett fält som anger vilken typ av data raden innehåller?
          Avundas aldrig någon det sken av lycka han har för du känner inte hans hemliga sorger.

          Kommentera


          • #6
            Det är en server farm med över 5000 SharePoint siter. Därav flera databaser.
            Om jag var blygsam,skulle jag vara perfekt
            ><((((º>

            Kommentera

            Working...
            X