在Microsoft Sql Server2005查询表的字段(转贴)

来源:互联网 发布:戴尔游匣7559优化教程 编辑:程序博客网 时间:2024/05/01 21:33

2010325星期四

转贴:http://topic.csdn.net/u/20070831/16/0e7a7b5b-c64a-465b-9189-733714e85277.html

Microsoft Sql Server2005查询表的字段

Microsoft Sql Server2005查询表的字段名称、字段类型、字段类型的长度等基本信息

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 parent_obj=a.id 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='spt_fallback_db'    --如果只查询指定表,加上此条件

order by

    a.id,a.colorder

 

原创粉丝点击