Может ли кто-нибудь помочь мне перечислить все столбцы вместе с таблицей всех пользовательских таблиц в базе данных? Я не хочу перечислять системные таблицы.
SELECT name FROM syscolumns
Дает мне все имена столбцов, но есть ли способ исключить все системные таблицы из набора результатов?
select b.name as tablename, a.name as columnname from syscolumns a join sys.tables b on a.id = b.object_id where b.type='U';
Type U = пользовательские таблицы!
Type U
Системные таблицы будут Type = S, поэтому с этим запросом вы их избегаете!
Type = S
SELECT -- o.type, -- o.type_desc, o.name AS object_name, c.name AS column_name FROM sys.columns c INNER JOIN sys.objects o ON o.object_id = c.object_id WHERE o.type = 'U' ORDER BY o.name, c.name