获取所有数据名、数据库表名

来源:互联网 发布:宝宝创意照片软件 编辑:程序博客网 时间:2024/04/28 03:07
 

1.获取所有数据库名:
Select Name FROM Master..SysDatabases ORDER BY Name
2.获取所有表名:
Select Name FROM DatabaseName..SysObjects Where XType='U' ORDER BY Name
XType='U':表示所有用户表;
XType='S':表示所有系统表;
3.获取所有字段名:
Select Name FROM SysColumns Where id=Object_Id('TableName')

下面是获取表名,大小,类型等

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
原创粉丝点击