如何在Sql2008中获取表字段属性和注释

 我来答
鲜美还清湛灬白桦N
推荐于2016-01-06 · TA获得超过621个赞
知道小有建树答主
回答量:404
采纳率:50%
帮助的人:541万
展开全部
--只查表名字段名和说明
Select B.name As 表名,A.name As 字段名,C.value As 说明
From syscolumns A  
Inner Join sysobjects B on A.id=B.id 
Left Join sys.extended_properties C on A.id=c.major_id and a.colid=C.minor_id Where B.type='U'  And B.name='Apo_city' 

--查询更多的信息
SELECT 表名=CASE
            WHEN a.colorder = 1 THEN d.name
            ELSE ''
          END,
       表说明=CASE
             WHEN a.colorder = 1 THEN Isnull(f.value, '')
             ELSE ''
           END,
       字段序号=a.colorder,
       字段名=a.name,
       标识=CASE
            WHEN Columnproperty(a.id, a.name, 'IsIdentity') = 1 THEN '√'
            ELSE ''
          END,
       主键=CASE
            WHEN EXISTS(SELECT 1
                        FROM   sysobjects
                        WHERE  xtype = 'PK'
                               AND name IN (SELECT name
                                            FROM   sysindexes
                                            WHERE  indid IN(SELECT indid
                                                            FROM   sysindexkeys
                                                            WHERE  id = a.id
                                                                   AND colid = a.colid))) THEN '√'
            ELSE ''
          END,
       类型=b.name,
       占用字节数=a.length,
       长度=Columnproperty(a.id, a.name, 'PRECISION'),
       小数位数=Isnull(Columnproperty(a.id, a.name, 'Scale'), 0),
       允许空=CASE
             WHEN a.isnullable = 1 THEN '√'
             ELSE ''
           END,
       默认值=Isnull(e.text, ''),
       字段说明=Isnull(g.[value], '')
FROM   syscolumns a
       LEFT JOIN systypes b
         ON a.xusertype = b.xusertype
       INNER JOIN sysobjects d
         ON a.id = d.id
            AND d.xtype = 'U'
            AND d.name <> 'dtproperties'
       LEFT JOIN syscomments e
         ON a.cdefault = e.id
       LEFT JOIN sys.extended_properties g
         ON a.id = g.major_id
            AND a.colid = g.minor_id
       LEFT JOIN sys.extended_properties f
         ON d.id = f.major_id
            AND f.minor_id = 0
--where d.name='orders' --如果只查询指定表,加上此条件 
ORDER  BY a.id,
          a.colorder

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式