取数据库表中字段的描述信息
2008-12-23 13:59
267 查看
Sql2000:
==========================
SELECT SysObjects.Name, --表名
SysColumns.Name, --字段名
SysTypes.Name, --字段类型
SysColumns.Length, --字段长度
SysProperties.Value --字段描述
FROM SysObjects,
SysTypes,
SysColumns
LEFT JOIN SysProperties
ON (Syscolumns.Id = Sysproperties.Id AND Syscolumns.Colid = Sysproperties.Smallid)
WHERE (Sysobjects.Xtype ='u' OR Sysobjects.Xtype ='v')
AND Sysobjects.Id = Syscolumns.Id
AND SysTypes.XType = Syscolumns.XType
AND Sysobjects.Name = 'Contract' --指字要查找的表名
ORDER BY smallid
SqlServer2005:
=============================
SELECT
表名 = case when a.colorder=1 then d.name else '' end,
表说明 = case when a.colorder=1 then isnull(f.value,'') else '' end,
字段序号 = a.colorder,
字段名 = a.name,
标识 = case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end,
主键 = case when exists(SELECT 1 FROM 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 '√' else '' end,
类型 = b.name,
占用字节数 = a.length,
长度 = COLUMNPROPERTY(a.id,a.name,'PRECISION'),
小数位数 = isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0),
允许空 = case when a.isnullable=1 then '√'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='Contract' --如果只查询指定表,加上此条件
order by
a.id,a.colorder
==========================
SELECT SysObjects.Name, --表名
SysColumns.Name, --字段名
SysTypes.Name, --字段类型
SysColumns.Length, --字段长度
SysProperties.Value --字段描述
FROM SysObjects,
SysTypes,
SysColumns
LEFT JOIN SysProperties
ON (Syscolumns.Id = Sysproperties.Id AND Syscolumns.Colid = Sysproperties.Smallid)
WHERE (Sysobjects.Xtype ='u' OR Sysobjects.Xtype ='v')
AND Sysobjects.Id = Syscolumns.Id
AND SysTypes.XType = Syscolumns.XType
AND Sysobjects.Name = 'Contract' --指字要查找的表名
ORDER BY smallid
SqlServer2005:
=============================
SELECT
表名 = case when a.colorder=1 then d.name else '' end,
表说明 = case when a.colorder=1 then isnull(f.value,'') else '' end,
字段序号 = a.colorder,
字段名 = a.name,
标识 = case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end,
主键 = case when exists(SELECT 1 FROM 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 '√' else '' end,
类型 = b.name,
占用字节数 = a.length,
长度 = COLUMNPROPERTY(a.id,a.name,'PRECISION'),
小数位数 = isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0),
允许空 = case when a.isnullable=1 then '√'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='Contract' --如果只查询指定表,加上此条件
order by
a.id,a.colorder
相关文章推荐
- 从数据库中获得表的字段和描述信息
- [生成数据字典]取数据库表中字段的描述信息
- 获取数据库表字段描述 类型 大小等信息
- SQL语句查询数据库所有表和所有字段的详细信息(包括表描述和字段描述)
- postgresql数据库查询所有字段详细信息,包括描述
- 数据库中如何查看某个表的所有字段信息等
- Hibernate为表字段添加备注信息,便于理解数据库设计
- 显示数据库中的表结构(新增了索引及表的描述信息)
- 显示数据库中的表结构(新增了索引及表的描述信息)
- Log4net自定义信息(变量或属性或字段)存入数据库
- SQL SERVER统计服务器所有的数据库(数据库文件)、表(表行数)、字段(各字段)等详细信息
- 显示数据库中的表结构(新增了索引及表的描述信息)
- 显示数据库中的表结构(新增了索引及表的描述信息)
- 如何得到数据库中所有表字段及字段中文描述
- 如何得到数据库中所有表字段及字段中文描述
- .NET — Examples of use (连接池,更新blob字段,事件,备份,恢复,取数据库系统信息)
- 查找数据库中所有表,及表的字段等相关信息
- SQL Server查询数据库字段信息
- sql获取数据库中数据表的字段名称,类型等信息
- 读取数据库信息构建视图字段的备注信息,方便程序代码生成