Spalte zu View hinzufügen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Spalte zu View hinzufügen

    Hallo zusammen,

    habe folgendes Problem, arbeite beruflich mit Prozessleitsystemen. Hierbei muss ich die Alarme und Meldungen eines PLS mit einer Software abgreifen. Die Daten enstammen einer SQL Datenbank.

    Dort werden soweit ich das verstanden habe wird eine View temporär erzeugt und die Daten dorthin aus anderen Tables hineingschrieben.

    Der Code sieht folgendermassen aus:

    Quellcode

    1. SELECT @SQL = 'CREATE VIEW '+@ViewName+' AS '+ CHAR(13) + CHAR(10)
    2. DECLARE AMT_Cursor CURSOR FOR SELECT DSN FROM AMT Where Type =@Typ ORDER BY Start DESC
    3. OPEN AMT_Cursor
    4. FETCH NEXT FROM AMT_Cursor into @DSN
    5. SELECT @ArchiveCount = 0
    6. WHILE(@@FETCH_STATUS = 0 AND @ArchiveCount < 250)
    7. BEGIN
    8. if( @ArchiveCount > 0 )
    9. SELECT @SQL = @SQL + 'UNION ALL ' + CHAR(13) + CHAR(10)
    10. SELECT @SQL = @SQL + 'SELECT * FROM [' + LTRIM(RTRIM(@DSN)) + '].[dbo].['+@ViewName+'] ' + CHAR(13) + CHAR(10)
    11. SELECT @ArchiveCount = @ArchiveCount+1
    12. FETCH NEXT FROM AMT_CURSOR into @DSN
    13. END
    14. IF( @ArchiveCount > 0 ) EXEC( @SQL )
    15. CLOSE AMT_Cursor
    16. DEALLOCATE AMT_Cursor
    Alles anzeigen


    ICh muss hierbei noch der View eine zusatzliche Spalte mit der Bezeichnung "ID" hinzufügen, die gleichzeitig auch der Primary Key sein soll.

    Kann mir hier jemand weiterhelfen?

    Danke schonmal im voraus
  • Guten Morgen,

    und gibt es solch eine Spalte ID schon? Dann musst du sie eigentlich nur bei diesem Select angeben.
    DECLARE AMT_Cursor CURSOR FOR SELECT id, DSN FROM AMT WHERE Type =@Typ ORDER BY Start DESC


    Wenn es sie nicht geben würde, hätte das aber auch keinen Sinn. Du wirst schließlich keine Änderungen der View Daten machen wollen, oder?
    Technisch sind UPDATEs auf VIEWs möglich, aber ich glaube da gibt es so einige Probleme. VIEWs sind eben nur zum "sehen"
  • ok ich glauba ich habe da was missverstanden.

    Kann ich aus einer View heraus einen table erzeugen, und dort dann die Spalte ID hinzufügen?

    Wenn ich ein table erzeuge -> mit einer stored procedure -> wie mach ich es dann das dieser table immer auf dem aktuellen Stand ist?


    Es hat sich noch ein Problem ergeben ->

    ich habe ein table das ich 1:1 kopieren will (weil ich dieses nicht verandern darf) und dort auch eine Spalte hinzufügen.
    Wie schaffe ich das dieses Table wirklich immer "up to date" ist.,