2011-08-02 16 views
5

Mam potrzebę biznesową, której nie widziałem od 10 lub 15 lat, więc proszę wybacz kod Dino, którego użyję do zilustrowania tego, co próbuję zrobić. Wiem, że jest sposób na zrobienie czegoś takiego w SQL Server, to było dla mnie zbyt długo cholernie długie.Serwer SQL - Pętla przez każdą kolumnę w każdej tabeli?

Wracając do dni MS DAO, użyłbym czegoś takiego do iteracji po każdym polu w każdym stole. Ahh ... Wspomnienia ...

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 

Czy ktoś może mi podać równoważnik SQL Server?

EDIT: Wewnątrz pętli struktura cokolwiek mogę założyć, ja też trzeba odwołać nazwę tabeli i nazwę pola (tj tdf.Name i fld.Name). Dzięki!!!

EDYTOWANIE 2: FYI Będę budować instrukcje SELECT z logiki.

Odpowiedz

10

To będzie Ci każdą kolumnę w swoim wierszu dla bieżącej bazy danych:

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 
; 

Można iterację, że za pomocą dowolnej liczby technologii dostępu do danych (ADO NET, LINQ, etc.).

Powiązane problemy