2011-08-02 13 views
5

私は10年または15年で見たことのないビジネス上の必要があるので、私がしようとしていることを説明するために使用するディーノコードを許してください。私はSQL Serverでこれを行う方法があることを知っています、それはちょうど私のために長いあかされています。SQL Server - すべてのテーブルの各列をループしますか?

MS DAOの日には、このようなものを使用してすべてのテーブルの各フィールドを繰り返し処理します。ああ...思い出...

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 

誰でも私にSQLサーバを与えることができますか?

EDIT:私が設定できるループ構造の中で、テーブル名とフィールド名(例:tdf.Nameとfld.Name)も参照する必要があります。ありがとう!!!

EDIT 2:FYIロジックからSELECT文を作成します。

答えて

10

これは、現在のデータベースのためにあなた自身の行のすべての列を取得します:

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 
; 

あなたはデータアクセステクノロジ(ADO .NET、LINQなど)の任意の数を使用して、そのを通して繰り返すことができます。

関連する問題