转贴:利用T——SQL得到相关表的所有信息 存储过程

来源:互联网 发布:网络上说的cp什么意思 编辑:程序博客网 时间:2024/05/22 03:04

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)
                                                                                       )---end select colid
                                                                                )----end :colid in
                                                        )-----------end :select indid
                                                  )--------------end: indid in
                          )-----------end select name
                     )-------end name in
                    AND
                    (xtype = 'PK') --------end  where 
            )>0  -----------end when 
 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.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 sysproperties g  on a.id=g.id AND a.colid = g.smallid 
order by object_name(a.id),a.colorder