считают это CTE
;WITH Columns AS
(
SELECT object_id AS TableId, Name AS ColumnName
FROM SYS.columns
),
Tables AS
(
SELECT S.NAME AS SchemaName, T.NAME AS TableName, object_id AS TableId
FROM sys.tables T
INNER JOIN sys.schemas S ON S.schema_id = T.schema_id
)
SELECT T.SchemaName, T.TableName, C.ColumnName
FROM Tables T
INNER JOIN Columns C ON T.TableId = C.TableId
Я хочу ограничить результаты столбцов только первыми тремя (например, в алфавитном порядке)
Так что, если у меня есть 1 схема (например, dbo) с 2 таблицами TableX и TableY с 4 столбцами в каждой ColA, ColB, ColC, ColD, мои результаты будут
что-то вроде
dbo TableX ColA
dbo TableX ColB
dbo TableX ColC
dbo TableY ColA
dbo TableY ColB
dbo TableY ColC
schema_a