Sql server 获取每列的扩展属性

Sql server 获取每列的扩展属性,sql-server,database,Sql Server,Database,需要修改此查询以获取扩展项目的“值”列。我试图扩展此查询,以获取数据库或特定表中每个列名的描述 下面的查询工作正常,我能够返回表名、数据类型和列名 SELECT TAB.name AS TableName, TYP.name AS DataTypeName, COL.name AS ColumnName FROM sys.columns AS COL INNER JOIN sys.tables AS TAB ON COL.object_

需要修改此查询以获取扩展项目的“值”列。我试图扩展此查询,以获取数据库或特定表中每个列名的描述

下面的查询工作正常,我能够返回表名、数据类型和列名

SELECT        TAB.name AS TableName, TYP.name AS DataTypeName, COL.name AS ColumnName
FROM          sys.columns AS COL INNER JOIN
              sys.tables AS TAB ON COL.object_id = TAB.object_id INNER JOIN
              sys.types AS TYP ON TYP.user_type_id = COL.user_type_id
需要添加sys.extended_properties表,但不知道需要映射哪些列才能获取描述值。

请尝试以下查询

class=1 -->(1 means object or column),
major_id --> If class is 1,then major_id is object_id,
minor_id --> minor_id is the column_id if column, else 0 if object.
(左联接用于显示所有表、列数据,与扩展属性无关)


您可以在MSDN站点上找到一些信息:不清楚是否希望扩展属性为列或行。如果是列,我们说的是动态的还是固定的?我需要扩展属性“值”列作为选择中的添加列。非常好,这正是我要找的,谢谢你解释这一点。今天学到了一些东西!
SELECT        TAB.name AS TableName, COL.name AS ColumnName ,TYP.name AS DataTypeName,t.*
FROM          sys.columns AS COL INNER JOIN
              sys.tables AS TAB ON COL.object_id = TAB.object_id INNER JOIN
              sys.types AS TYP ON TYP.user_type_id = COL.user_type_id LEFT JOIN
              sys.extended_properties t on t.major_id=TAB.object_id and t.minor_id=col.column_id and t.class=1