Announcement

Collapse
No announcement yet.

View anhand von Daten einer Tabelle umschreiben

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • View anhand von Daten einer Tabelle umschreiben

    Hallo,<BR>
    ich habe folgendes Problem:<BR>
    Ich habe eine SQL Server 2000 Datenbank in der für die Daten eines Tages jeweils automatisch eine eigene Tabelle angelegt wird.<BR>
    Die Namen dieser Tabellen sind wiederum in einer einzigen Tabelle hinterlegt.<BR>
    Ich benötige nun eine View, die mir den inhalt all dieser Tagesdaten auf einmal ausspuckt.<BR>
    Gibt es die Möglichkeit z.B. mit Hilfe einer stored procedure oder so eine entsprechende View zu generieren, auf die ich dann wiederum über ODBC von außerhalb der Datenbank zugreifen kann?

    Beispiel für die gewünschte view:
    <PRE>
    select * from Arc0815
    union select * from Arc0816
    union select * from Arc0817
    </PRE>
    Ich würde mich freuen, wenn mir hierbei jemand helfen könnte.

    Gruß
    Lars

  • #2
    Hallo,

    &gt;Gibt es die Möglichkeit z.B. mit Hilfe einer stored procedure ...

    ja - die Stored Procedure muss beim Aufruf den später über <b>EXEC</b> auszuführenden SQL-String dynamisch zusammenbauen, um alle vorhandenen Tabellennamen einzubinden.

    Anstelle des VIEWs liefert die Stored Procedure direkt das Ergebnis als Ergebnismenge zurück.

    Das folgende Mini-Beispiel demonstriert das Prinzip:
    <pre>
    CREATE PROCEDURE GetCount
    @sTableName VARCHAR(50)
    AS
    DECLARE @sSQL VARCHAR(250)
    SET @sSQL = 'SELECT COUNT(*) FROM' + @sTableName
    EXEC(@sSQL)
    </pre&gt

    Comment


    • #3
      Danke,<BR>
      werde ich gleich mal ausprobieren...<BR>

      Gruß<BR>
      Lar

      Comment


      • #4
        btw: Wäre "EXECUTE sp_executesql @sSQL" hier performanter als "EXEC(@sSQL)" oder ist das nur ein Gerücht

        Comment


        • #5
          Hallo,

          &gt;..oder ist das nur ein Gerücht?

          nein, da ist was Wahres dran, allerdings nicht in allen Fällen. Der Rückgriff auf sp_executesql lohnt sich nur dann, wenn die auszuführende Anweisung <b>ungeändert</b> mehrmals in der Session aufgerufen wird (und sich das vorherige Ablegen in den Prozedur-Cache somit auch lohnt). Wenn sich aber bei jedem Aufruf der SQL-Text grundlegend ändert, kann auch sp_executesql nichts mehr ausrichten

          Comment

          Working...
          X