SQL Server - цикл по каждому столбцу в каждой таблице? - PullRequest
5 голосов
/ 02 августа 2011

У меня есть бизнес-потребность, которую я не видел 10 или 15 лет, поэтому, пожалуйста, извините код dino, который я буду использовать, чтобы проиллюстрировать, что я пытаюсь сделать.Я знаю, что есть способ сделать что-то подобное в SQL Server, но это было слишком долго,Ааа ... Воспоминания ...

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-сервера?

РЕДАКТИРОВАТЬ : Внутри любой структуры цикла, которую я могу настроитьМне также нужно сослаться на имя таблицы и имя поля (то есть: tdf.Name и fld.Name).Спасибо !!!

РЕДАКТИРОВАТЬ 2 : К вашему сведению, я буду строить операторы SELECT из логики.

1 Ответ

10 голосов
/ 02 августа 2011

Таким образом вы получите каждый столбец в отдельной строке для текущей базы данных:

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 и т. Д.).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...