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

博客给出一段SQL代码,用于查询表的字段信息,包括表名、字段序号、字段名、标识、主键、类型、占用字节数等内容,代码通过多表连接和条件筛选实现查询,并按表名和字段序号排序。

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

转载于:https://www.cnblogs.com/dhz123/archive/2004/11/05/2194382.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值