您的位置:首页 > 数据库

SQL Server 2008 获取所有数据库名,表名,字段名

2013-09-16 11:56 239 查看
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=1then d.name else '' end,

[表说明]=case when a.colorder=1then isnull(f.value,'')else '' end,

[字段序号]=a.colorder,

[字段名]=a.name,

[标识]=case when COLUMNPROPERTY(

a.id,a.name,'IsIdentity')=1then '√'else '' end,

[主键]=case when exists(SELECT 1FROM sysobjects where xtype='PK' and parent_obj=a.id and name in (

SELECT name FROM sysindexes WHERE indid in(

SELECT indid FROM sysindexkeys WHERE id

= a.id AND colid=a.colid

)))then 'true' else '' end,

[类型]=b.name,

[占用字节数]=a.length,

[长度]=COLUMNPROPERTY(a.id,a.name,'PRECISION'),

[小数位数]=isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0),

[允许空]=case when a.isnullable=1then '√'else '' end,

[默认值]=isnull(e.text,''),

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

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 sys.extended_properties

g on a.id=g.major_id and a.colid=g.minor_id

left join sys.extended_properties

f on d.id=f.major_id and f.minor_id=0

where

d.name='city' --如果只查询指定表,加上此条件

order by a.id,a.colorder

  OR

?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐