Gerhard: Anzahl der Spalten einer Tabelle

Hallo!

Kann man irgendwie dynamisch die Anzahl der Spalten einer Tabelle auslesen?
so frei nach dem motto SELECT count(columns) FROM tabelle

Danke
lg Gerhard

  1. Hi,

    Kann man irgendwie dynamisch die Anzahl der Spalten einer Tabelle auslesen?

    wieso sollte so etwas nötig sein? Das DB-Layout hat als bekannt vorausgesetzt zu werden; die unbekannten Elemente sind als irrelevant zu definieren.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hallo,

      wieso sollte so etwas nötig sein?

      Es kann doch sein, dass sich die Tabelle durch Software, die auf ihr arbeitet erweitert, oder nicht?
      Ob das allerdings sinnvoll ist, ist ne andere Frage.

      Das DB-Layout hat als bekannt vorausgesetzt zu werden; die unbekannten Elemente sind als irrelevant zu definieren.

      Aus DB-Technischer Sicht verhalten sich die Meta-Daten (Tabellen, Attribute usw.) in der DB auch nicht anders als "normale Datenbank-Daten" - wieso sollte einem Benutzer darauf kein (zumindest lesender) Zugriff gestattet sein?

      1. Hi,

        Es kann doch sein, dass sich die Tabelle durch Software, die auf ihr arbeitet erweitert, oder nicht?

        wenn das so ist, dann bezeichne ich die Software als kritisch fehlerhaft. Ein DB-Layout ändert sich nicht "eben mal so".

        Ob das allerdings sinnvoll ist, ist ne andere Frage.

        Die Antwort auf sie ist unzweifelhaft.

        Das DB-Layout hat als bekannt vorausgesetzt zu werden; die unbekannten Elemente sind als irrelevant zu definieren.
        Aus DB-Technischer Sicht verhalten sich die Meta-Daten (Tabellen, Attribute usw.) in der DB auch nicht anders als "normale Datenbank-Daten" - wieso sollte einem Benutzer darauf kein (zumindest lesender) Zugriff gestattet sein?

        Der Zugriff darf gerne gestattet sein, das ist überhaupt kein Thema. Wenn er in einer Software, die nicht gerade zufällig ein allgemeingültiges DB-Verwaltungs-Tool its, als _nötig_ erachtet wird, dann liegt ein schwerwiegendes Problem vor. Eine Software hat das DB-Layout zu kennen, und was sie nicht kennt muss ignorierbar sein.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. Hallo,

          wenn das so ist, dann bezeichne ich die Software als kritisch fehlerhaft. Ein DB-Layout ändert sich nicht "eben mal so".

          Wirklich? Was ist mit einem Web-gestützten DB-Administrationstool (phpmyadmin und co)?

          Jörg

          1. Hallo Jörg,

            wenn das so ist, dann bezeichne ich die Software als kritisch fehlerhaft. Ein DB-Layout ändert sich nicht "eben mal so".
            Wirklich? Was ist mit einem Web-gestützten DB-Administrationstool (phpmyadmin und co)?

            Die Antwort steht doch bereits in diesem Thread, ich zitiere Cheatah:

            <zitat quelle="https://forum.selfhtml.org/?t=113589&m=721446">
            Der Zugriff darf gerne gestattet sein, das ist überhaupt kein Thema. Wenn er in einer Software, die nicht gerade zufällig ein allgemeingültiges DB-Verwaltungs-Tool its, als _nötig_ erachtet wird, dann liegt ein schwerwiegendes Problem vor.
            </zitat>

            Freundliche Grüße

            Vinzenz

            1. Hallo Jörg,

              Hallo,

              Die Antwort steht doch bereits in diesem Thread, ich zitiere Cheatah:

              <zitat quelle="https://forum.selfhtml.org/?t=113589&m=721446">
              Der Zugriff darf gerne gestattet sein, das ist überhaupt kein Thema. Wenn er in einer Software, die nicht gerade zufällig ein allgemeingültiges DB-Verwaltungs-Tool its, als _nötig_ erachtet wird, dann liegt ein schwerwiegendes Problem vor.
              </zitat>

              Hoppale, ok, das hab ich überlesen ;)

  2. Hallo!

    Tag,
    Geht vielleicht was wie:

    SELECT COUNT(DESCRIBE tabelle)

    (ohne Gewähr)

    Jörg

  3. Hallo

    Kann man irgendwie dynamisch die Anzahl der Spalten einer Tabelle auslesen?
    so frei nach dem motto SELECT count(columns) FROM tabelle

    Über Sinn und Unsinn Deines Ansinnens wurde ja bereits alles gesagt.
    Ja, man kann es. Wie es geht ist vom Datenbankmanagementsystem abhängig.

    Folgendes funktioniert für mich (MS SQL Server 2000):
    (Ersetze <tabellenname> durch den entsprechenden Tabellennamen)

      
    select count(sc.id) as Spaltenanzahl from syscolumns sc  
    inner join sysobjects so on sc.id = so.id  
    where so.name = '<tabellenname>'  
    
    

    Freundliche Grüße

    Vinzenz