蛙蛙推荐:怎样获取一个表中所有字段的信息数据库教程 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

   

    先创建一个视图

    Create view fielddesc

    as

    select o.name as table_name,c.name as field_name,t.name as type,c.length as

    length,c.isnullable as isnullable,convert(varchar(30),p.value) as desp

    from syscolumns c

    join systypes t on c.xtype = t.xusertype

    join sysobjects o on o.id=c.id

    left join   sysproperties p on p.smallid=c.colid and p.id=o.id

    where o.xtype='U'

    查询时:

    Select * from fielddesc where table_name = '你的表名'

    还有个更强的语句,是邹建写的,也写出来吧

    SELECT

    (case when a.colorder=1 then d.name else '' end) N'表名',

    a.colorder N'字段序号',

    a.name N'字段名',

    (case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end) N'标识',

    (case when (SELECT count(*)

    FROM sysobjects

    WHERE (name in

    (SELECT name

    FROM sysindexes

    WHERE (id = a.id) AND (indid in

    (SELECT indid

    FROM sysindexkeys

    WHERE (id = a.id) AND (colid in

    (SELECT colid

    FROM syscolumns

    WHERE (id = a.id) AND (name = a.name))))))) AND

    (xtype = 'PK'))>0 then '√' else '' end) N'主键',

    b.name N'类型',

    a.length N'占用字节数',

    COLUMNPROPERTY(a.id,a.name,'PRECISION') as N'长度',

    isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0) as N'小数位数',

    (case when a.isnullable=1 then '√'else '' end) N'允许空',

    isnull(e.text,'') N'默认值',

    isnull(g.[value],'') AS N'字段说明'

    --into ##tx

    FROM syscolumns a left join systypes b

    on a.xtype=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 sysproperties g

    on a.id=g.id AND a.colid = g.smallid

    order by object_name(a.id),a.colorder

最新文章