MSSQL列出库里面的所有表名和字段名

本文提供了多种SQL Server元数据查询的方法,包括通过sysobjects、syscolumns等系统表获取表名、字段名及其相关信息,同时也介绍了使用information_schema进行查询的方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  use   数据库  
  select   a.name   as   表名,b.name   as   字段名,b.length   as   字段长度,c.name   字段类型  
  from   (select   *   from   sysobjects   where   xtype='u')   a     join   syscolumns   b  
  on   a.id=b.id  
  left   join   systypes   c   on   b.xusertype=c.xusertype  
  order   by   表名 

以下都是异曲同工

select   d.name,a.name   ,b.name   ,a.length,   a.isnullable   from   syscolumns   a,   systypes   b,sysobjects   d   where   a.xtype=b.xusertype   and   a.id=d.id   and   d.xtype='U'

这个住处比较详细不过就比较长

SELECT    
  (case   when   a.colorder=1   then   d.name   else   ''   end)表名,  
  a.colorder   字段序号,  
  a.name   字段名,  
  (case   when   COLUMNPROPERTY(   a.id,a.name,'IsIdentity')=1   then   '√'else   ''   end)   标识,  
  (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)   主键,  
  b.name   类型,  
  a.length   占用字节数,  
  COLUMNPROPERTY(a.id,a.name,'PRECISION')   as   长度,  
  isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0)   as   小数位数,  
  (case   when   a.isnullable=1   then   '√'else   ''   end)   允许空,  
  isnull(e.text,'')   默认值,  
  isnull(g.[value],'')   AS   字段说明  
   
  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   a.id,a.colorder

另外方法1:

select   *   from   information_schema.tables   
select   *   from   information_schema.columns

另外方法2:

  use   你的数据库名  
  select   *   from   sysobjects   where   xtype='u'   and status>0
  2:  
  select   *   from   syscolumns   where   id   =object_id('表名')

另外方法3:

exec   sp_help

exec   sp_tables  

再来两个比较好看的.

--查用户表  
  select   name   from   sysobjects   where   xtype='U'   and   status   >0   order   by   name  
  --查出指定表名的字段信息  
  select   a.name   from   syscolumns   a,sysobjects   b   where   a.id=b.id   and   b.name=表名  
  order   by   a.name

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值