5 Stimmen

SQL Server -- Schleife über jede Spalte in jeder Tabelle?

Ich habe ein geschäftliches Bedürfnis, das ich seit 10 oder 15 Jahren nicht gesehen habe, also entschuldigen Sie bitte den Dino-Code, den ich verwenden werde, um zu veranschaulichen, was ich zu tun versuche. Ich weiß, dass es eine Möglichkeit gibt, so etwas in SQL Server zu tun, aber es ist einfach zu lange her für mich.

Zurück in den MS DAO-Tagen würde ich etwas Ähnliches wie das hier verwenden, um durch jedes Feld in jeder Tabelle zu iterieren. Ahh... Erinnerungen...

Dim dbs as DAO.Database
Dim tdf as DAO.TableDef
Dim fld as DAO.Field

For Each tdf in dbs.TableDefs
    For Each fld in tdf.Fields
        'Do whatever to every field in every table here.
    Next
Next

Kann mir jemand das SQL-Server-Äquivalent geben?

EDIT: Innerhalb der Schleifenstruktur, die ich einrichten kann, muss ich auch den Tabellennamen und den Feldnamen referenzieren (z.B.: tdf.Name und fld.Name). Danke!!!

EDIT 2: FYI Ich werde SELECT-Statements aus der Logik erstellen.

10voto

Yuck Punkte 46967

Dies gibt Ihnen jede Spalte in einer eigenen Zeile für die aktuelle Datenbank:

SELECT s.name SchemaName, t.name TableName, c.name ColumnName
FROM sys.columns c INNER JOIN
     sys.tables t ON c.object_id = t.object_id INNER JOIN
     sys.schemas s ON t.schema_id = s.schema_id
;

Sie könnten das mit einer beliebigen Anzahl von Datenzugriffstechnologien durchlaufen (ADO .NET, LINQ, etc.).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X