select tb.[name] '表名', row_number() over(partition by tb.[name] order by tb.[name]) '序号',tb.value '表说明',ta.[name] '列名', tc.value '列说明' from sys.columns ta
left join (
select t1.[name],t1.[schema_id],t2.value,t1.[object_id] from sys.tables t1
left join sys.extended_properties t2 on t1.[object_id] = t2.major_id and t2.minor_id='0'
)tb on ta.[object_id] = tb.[object_id]
left join sys.extended_properties tc on ta.column_id = tc.minor_id and tb.[object_id] = tc.major_id
where tb.[schema_id]=1
union
select tb.[name] '表名',row_number() over(partition by tb.[name] order by tb.[name]) '序号',tb.value '表说明',ta.[name] '列名', tc.value '列说明' from sys.columns ta
left join (
select t1.[name],t1.[schema_id],t2.value,t1.[object_id] from sys.views t1
left join sys.extended_properties t2 on t1.[object_id] = t2.major_id and t2.minor_id='0'
)tb on ta.[object_id] = tb.[object_id]
left join sys.extended_properties tc on ta.column_id = tc.minor_id and tb.[object_id] = tc.major_id
where tb.[schema_id]=1
order by tb.[name],'序号'
其效果如下: