Вопрос

SQL Получить названия всех полей сущности

Добрый день!

мне нужно получить названия всех полей определенной сущности. сделала вот такой запрос

select 

(case  when [key] like 'columns%' then replace(replace([key],'Columns.',''),'.Caption','') else '' end),

Value

 from SysLocalizableValue

where SysSchemaId in (select id from SysSchema where Name='ContactAddress')

and ([key] Like 'Columns%')

and SysCultureId='1A778E3F-0A8E-E111-84A3-00155D054C03'

order by (case when [key] like 'columns%' then replace(replace([key],'Columns.',''),'.Caption','') else '' end)

но столкнулась с проблемой наследования. данный запрос мне возвращает только 1 строку - Contact, так как остальные поля наследуются из Address.

как можно получить итоговый список полей сущности с учетом всех изменений из разных пакетов?

 

Нравится

2 комментария

Можно посмотреть поля в таблице базы через системные таблицы:

SELECT  t.name AS [Table Name], c.name AS [Column Name], value AS [Extended Property]
FROM sys.extended_properties AS ep
INNER JOIN sys.tables AS t ON ep.major_id = t.object_id 
INNER JOIN sys.columns AS c ON ep.major_id = c.object_id AND ep.minor_id = c.column_id
WHERE class = 1 and t.name = 'ContactAddress'
AND CAST(value AS VARCHAR) LIKE 'ru-RU|%'

 

 

Зверев Александр,

большое спасибо!

Показать все комментарии